以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 快速筛选统计数量  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=157036)

--  作者:ade2015
--  发布时间:2020/9/29 13:54:00
--  [求助] 快速筛选统计数量
以下是用来在窗口显示统计数量的代码,感觉大部分统计的执行在重复 ,实际显示也很慢。
求助1  :本人小白,那位大神帮忙简化一下,也可以甩个help链接
求助2  :有没有好的,统计方式,甩个help帮助链接也行

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

Dim zzx As Integer
Dim sja As Integer
Dim sca As Integer
Dim faa As Integer
Dim sjw As Integer
Dim sjz As Integer
Dim scw As Integer
Dim scz As Integer
zzx = DataTables("maintable01").SQLCompute("Count(*)","项目编号 <> \' \' and 交货= \'生产中\'")
sja = DataTables("maintable01").SQLCompute("Count(*)","项目编号 <> \' \' and 交货= \'生产中\' and 项目类型=\'设计案\'")
sca = DataTables("maintable01").SQLCompute("Count(*)","项目编号 <> \' \' and 交货= \'生产中\' and 项目类型=\'生产案\'")
faa = DataTables("maintable01").SQLCompute("Count(*)","项目编号 <> \' \' and 交货= \'生产中\' and 项目类型=\'方案\'")
sjw = DataTables("maintable01").SQLCompute("Count(*)","项目编号 <> \' \' and 交货= \'生产中\' and 设计状态=\'设计待分配\'")
sjz = DataTables("maintable01").SQLCompute("Count(*)","项目编号 <> \' \' and 交货= \'生产中\' and 设计状态=\'设计中\'")
scw = DataTables("maintable01").SQLCompute("Count(*)","项目编号 <> \' \' and 交货= \'生产中\' and 生产状态=\'生产未受理\'")
scz = DataTables("maintable01").SQLCompute("Count(*)","项目编号 <> \' \' and 交货= \'生产中\' and 生产状态=\'生产中\'")
Forms("主页").Controls("zzx").text = zzx
Forms("主页").Controls("sja").text = sja
Forms("主页").Controls("faa").text = faa
Forms("主页").Controls("sca").text = sca
Forms("主页").Controls("sjw").text = sjw
Forms("主页").Controls("sjz").text = sjz
Forms("主页").Controls("scw").text = scw
Forms("主页").Controls("scz").text = scz

[此贴子已经被作者于2020/9/29 14:21:07编辑过]

--  作者:有点蓝
--  发布时间:2020/9/29 14:04:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=50080

条件不一样,没有简化的余地

--  作者:ade2015
--  发布时间:2020/9/29 15:25:00
--  
蓝哥:有统计数量 速度 快一点的代码吗?
比如都是先筛选 “项目编号不为空” 且  “交货中”。然后在细分统计数量的。

(现在的代码,每一行都要筛选过滤几回,而且大部分重复的)
 随着数据库的数据行越来越多,时间会越来越慢

(会不会和我用的 “群晖”服务器,以及用的 百兆 交换机 有关系)

以上

--  作者:有点蓝
--  发布时间:2020/9/29 15:45:00
--  
SQLCompute已经是最快的了,不可能还有更快的。

建议优化一下你们的使用习惯,首先项目编号不要保存空值,空值判断是很费时间的,按理项目编号就不应该有空值的
其次给交货、项目类型等经常做查询条件的额列加上必要的索引