以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  一个统计问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=161457)

--  作者:douglas738888
--  发布时间:2021/3/18 9:43:00
--  一个统计问题
请教老师,有一个文件调用表,里面目前有上万个文件被调用记录,采用什么方法统计调用次数最多的前十个文件?
采用如下的代码处理再排序似乎不现实,临时表必然出现上万行不需要的统计行,临时表好像不能分页加载
1.文件名和调用次数是动态增加的,无法设定筛选条件,后台筛选无法使用
2.不可能把全部数据加载进来进行统计

Dim b1 As New SQLGroupTableBuilder("统计表007", "卷内文件")
b1.Groups.AddDef("题名","题名")
b1.Totals.AddDef("入档编号",AggregateEnum.Count ,"统计")
Tables("窗口7_Table1").DataSource = b1.BuildDataSource()
[此贴子已经被作者于2021/3/18 9:43:08编辑过]

--  作者:有点蓝
--  发布时间:2021/3/18 9:47:00
--  
用sql:

Tables("窗口7_Table1").fill("select top 10 题名,统计 from (select 题名,count(入档编号) as 统计 from {卷内文件} group by 题名) as a order by 统计 desc",true)
[此贴子已经被作者于2021/3/18 14:48:24编辑过]

--  作者:douglas738888
--  发布时间:2021/3/18 11:17:00
--  
老师,您指导的代码,出现报错“select语句执行错误,请检查语法及数据源设置”
SQL执行窗口测试,出现“窗口7_Table1附近有语法错误”
我看了表名,列名都没有错,统计不是表中的列是NewName
我在 true前增加了数据源名称也不行,不知是哪里的问题

--  作者:有点蓝
--  发布时间:2021/3/18 11:22:00
--  
如果是外部表,加上数据源:http://www.foxtable.com/webhelp/topics/2912.htm
--  作者:douglas738888
--  发布时间:2021/3/18 14:45:00
--  
老师,加了数据源也不对,应该是SQL语句的错误,group by 与 order by 同时使用,看了oracle的场景,SQLserver的好像这样写可以,请老师再指导看看

Tables("窗口7_Table1").fill("select top 10 题名,count(入档编号) as 统计 from {卷内文件} group by 题名) , 题名 order by 统计 desc","AAAA",true)
[此贴子已经被作者于2021/3/18 14:46:21编辑过]

--  作者:有点蓝
--  发布时间:2021/3/18 14:48:00
--  
所以请认真看看2楼的sql
--  作者:有点蓝
--  发布时间:2021/3/18 14:49:00
--  
嗯,少了一个from

Tables("窗口7_Table1").fill("select top 10 题名,统计 from (select 题名,count(入档编号) as 统计 from {卷内文件} group by 题名) as a order by 统计 desc",true)