Foxtable(狐表)用户栏目专家坐堂 → [求助] 统计数据表问题


  共有5196人关注过本帖树形打印复制链接

主题:[求助] 统计数据表问题

帅哥哟,离线,有人找我吗?
wumingrong1
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
[求助] 统计数据表问题  发帖心情 Post By:2014/12/25 18:42:00 [显示全部帖子]

我设计了一个统计表,公式如下:我的数据表20多万条记录、统计速度很慢、需要10几分钟才能够统计出来,有没有什么办法可以提高统计速度?

Dim g1 As New GroupTableBuilder("OLT端口使用统计表", DataTables("OLT设备用户端口数据表"))
g1.Groups.AddDef("机房名称")
g1.Groups.AddDef("设备名称")
g1.Groups.AddDef("机框编号")
g1.Groups.AddDef("槽位编号")
g1.Groups.AddDef("端口编号")
g1.Totals.AddDef("设备ID", AggregateEnum.Count, "密码数量")
g1.Filter = " 机房名称 Is not null"
e.form.Controls("Table1").Table.DataSource = g1.BuildDataSource
Dim dt As DataTable = e.form.Controls("Table1").Table.DataTable
dt.DataCols.Add("用户数量", Gettype(Integer))
'dt.DataCols.Add("槽位端口", Gettype(String))
dt.DataCols.Add("端口利用率", Gettype(Double))
For Each r1 As DataRow In dt.datarows
    r1("用户数量") = DataTables("OLT设备用户端口数据表").Compute("count(_Identify)" , " 机房名称 = '" & r1("机房名称") & "' and 设备名称 = '" & r1("设备名称") & "' and 机框编号 = '" & r1("机框编号") & "' and 槽位编号 = '" & r1("槽位编号") & "' and 端口编号 = '" & r1("端口编号") & "' and  宽带帐号 is not null")
    'r1("槽位端口") = r1("机框编号") +"/"+ r1("槽位编号") +"/"+ r1("端口编号")
    r1("端口利用率") = r1("用户数量") / r1("密码数量")
Next
dt.DataCols("端口利用率").SetFormat("00.00%")
e.form.Controls("Table1").Table.SetColVisibleWidth("机房名称|160|设备名称|80|槽位端口|80|机框编号|80|槽位编号|80|端口编号|80|密码数量|80|用户数量|80|端口利用率|80")

 回到顶部
帅哥哟,离线,有人找我吗?
wumingrong1
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2014/12/25 19:26:00 [显示全部帖子]

按2楼的修改、貌似速度可以提高;先用着再观察试试吧。

还有就是以上命令只能实现按   “机房名称 设备名称 机框编号 槽位编号 端口编号”  进行统计,如果我还想再增加按  “机房名称 设备名称 机框编号 ”进行分组统计小计和汇总;我的命令公式该怎么改?

目前的效果:

图片点击可在新窗口打开查看此主题相关图片如下:360截图20141225193350968.jpg
图片点击可在新窗口打开查看

想达到的效果如附件


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数据分组统计.xls


[此贴子已经被作者于2014-12-25 19:32:06编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
wumingrong1
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2014/12/26 10:10:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目13.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
wumingrong1
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2014/12/26 10:31:00 [显示全部帖子]

这是求和 g.TotalOn = "密码数量,用户数量"  ;如果我需要计数呢?公式该怎么写?

这是统计一列 g.GroupOn = "设备名称" ;如果我需要显示多列,公式该怎么写 比如: 

图片点击可在新窗口打开查看此主题相关图片如下:360截图20141226103945750.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2014-12-26 10:37:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
wumingrong1
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2014/12/26 11:52:00 [显示全部帖子]

在同一行统计行中,不能根据不同的列分别进行 计数统计 和 求和统计 吗?比如能不能把下图中的两个统计行合并成一行?(其中‘端口编号’为计数、‘密码数量’和‘用户数量’为求和)


图片点击可在新窗口打开查看此主题相关图片如下:360截图20141226115355421.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2014-12-26 11:56:34编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
wumingrong1
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2014/12/26 15:04:00 [显示全部帖子]

这个公式 :g.GroupOn = "设备名称" 能不能设置为多条件?比如:g.GroupOn = "机房名称,设备名称"  什么的。想要实现多条件统计

 回到顶部
帅哥哟,离线,有人找我吗?
wumingrong1
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2016/4/5 20:16:00 [显示全部帖子]

希望实现下图功能,我的命令该怎么修改?

 
图片点击可在新窗口打开查看此主题相关图片如下:360截图20160405201448886.jpg
图片点击可在新窗口打开查看

Dim g1 As New GroupTableBuilder("回访统计表1", DataTables("宽带帐号割接回访表"))
g1.Groups.AddDef("归属设备")
g1.Groups.AddDef("割接情况")
g1.Groups.AddDef("关停情况")
g1.Totals.AddDef("归属设备", AggregateEnum.Count, "归属统计") '统计"回访_结果"列 填写到"统计"列
g1.Totals.AddDef("关停情况", AggregateEnum.Count, "关停统计") '统计"回访_结果"列 填写到"统计"列
g1.Filter = "割接情况 <> ''" '筛选统计内容
g1.Build()
Tables("设备统计窗口_Table2").DataSource = g1.BuildDataSource() '生成表
Tables("设备统计窗口_Table2").SetColVisibleWidth("归属设备|200|割接情况|120|关停情况|120|归属统计|100|关停统计|100|端口利用率|100")


 回到顶部
帅哥哟,离线,有人找我吗?
wumingrong1
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2016/5/9 10:04:00 [显示全部帖子]

以下红色部分想表达意思:【宽带帐号割接回访表】中的【确定已经割接日期】大于【宽带帐号割接回访表】中的【关停日期】   ;我的命令该怎么改?


Dim g4 As New GroupTableBuilder("回访统计表", DataTables("宽带帐号割接回访表"))
g4.Groups.AddDef("工单责任人")
g4.Groups.AddDef("客户负责人","割接批次")
g4.Filter = "关停情况 <> ''" '筛选统计内容
g4.Build()
Dim t4 As Table = Tables("割接情况统计窗口_Table5")
t4.DataSource = g4.BuildDataSource() '生成表
t4.SetColVisibleWidth("工单责任人|100|割接批次|150|先关停后割接|70")
 


For Each r4 As Row In t4.Rows  
  Dim c_gt10 As Integer = DataTables("宽带帐号割接回访表").compute("count(关停情况)", "工单责任人 = '" & r4("工单责任人") & "'and 客户负责人 = '" & r4("割接批次") & "' and 割接情况 = '已割接' and 确定已经割接日期 > '" &  r4("关停时间") & "'  ")
  ' r4("先关停后割接") = c_gt10

 

Next


 回到顶部
帅哥哟,离线,有人找我吗?
wumingrong1
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2016/5/9 15:18:00 [显示全部帖子]

我有一个统计表的数据如下图;如果我想实现按照【收到信息自动割接】【主动关停后自行割接】【回访后自行割接】【上门处理后割接】列的各自比例画 饼形图;该怎么做?

 

 


图片点击可在新窗口打开查看此主题相关图片如下:360截图20160509151305839.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
wumingrong1
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2016/5/9 15:47:00 [显示全部帖子]

我想要的是下图这样的效果

 

 


图片点击可在新窗口打开查看此主题相关图片如下:360截图20160509154857101.jpg
图片点击可在新窗口打开查看

 回到顶部
总数 28 1 2 3 下一页