以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] 统计数据表问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62125) |
||||
-- 作者:wumingrong1 -- 发布时间: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") |
||||
-- 作者:czy -- 发布时间:2014/12/25 19:02:00 -- 分组统计时直接统计不行吗? g1.Totals.AddDef("机房名称", AggregateEnum.Count, "用户数量") |
||||
-- 作者:有点甜 -- 发布时间:2014/12/25 19:12:00 -- 这种要用sql语句比较好。上传例子测试效果。 |
||||
-- 作者:有点甜 -- 发布时间:2014/12/25 19:18:00 --
|
||||
-- 作者:wumingrong1 -- 发布时间:2014/12/25 19:26:00 -- 按2楼的修改、貌似速度可以提高;先用着再观察试试吧。 还有就是以上命令只能实现按 “机房名称 设备名称 机框编号 槽位编号 端口编号” 进行统计,如果我还想再增加按 “机房名称 设备名称 机框编号 ”进行分组统计小计和汇总;我的命令公式该怎么改? 目前的效果: 想达到的效果如附件
[此贴子已经被作者于2014-12-25 19:32:06编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2014/12/25 19:35:00 -- 叫你把数据表上传上来啊。不是统计表啊。 |
||||
-- 作者:有点甜 -- 发布时间:2014/12/25 19:45:00 -- 例子上传上来,不然你就参考下面的语句。
|
||||
-- 作者:wumingrong1 -- 发布时间:2014/12/26 10:10:00 --
|
||||
-- 作者:有点甜 -- 发布时间:2014/12/26 10:23:00 --
|
||||
-- 作者:wumingrong1 -- 发布时间:2014/12/26 10:31:00 -- 这是求和 g.TotalOn = "密码数量,用户数量" ;如果我需要计数呢?公式该怎么写? 这是统计一列 g.GroupOn = "设备名称" ;如果我需要显示多列,公式该怎么写 比如:
[此贴子已经被作者于2014-12-26 10:37:44编辑过]
|