以文本方式查看主题

-  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
--  

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:参考语句.txt

 
--  作者:wumingrong1
--  发布时间:2014/12/25 19:26:00
--  
按2楼的修改、貌似速度可以提高;先用着再观察试试吧。

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

目前的效果:

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

想达到的效果如附件


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


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

--  作者:有点甜
--  发布时间:2014/12/25 19:35:00
--  
 叫你把数据表上传上来啊。不是统计表啊。
--  作者:有点甜
--  发布时间:2014/12/25 19:45:00
--  

 例子上传上来,不然你就参考下面的语句。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:参考语句.txt


--  作者:wumingrong1
--  发布时间:2014/12/26 10:10:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目13.foxdb


--  作者:有点甜
--  发布时间:2014/12/26 10:23:00
--  
 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:参考语句.txt


--  作者:wumingrong1
--  发布时间:2014/12/26 10:31:00
--  
这是求和 g.TotalOn = "密码数量,用户数量"  ;如果我需要计数呢?公式该怎么写?

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

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