以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  交叉有统计列 在部分电脑上无法统计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171779)

--  作者:可乐七号
--  发布时间:2021/9/9 9:36:00
--  交叉有统计列 在部分电脑上无法统计

图片点击可在新窗口打开查看此主题相关图片如下:可统计.png
图片点击可在新窗口打开查看
交叉有统计列 在部分电脑上无法统计,情况看附件
以下为代码
DataTables("录入盘点汇总信息").LoadFilter="所属供应商=\'" & Forms("盘点明细表").Controls("combobox1").text & "\'"
DataTables("录入盘点汇总信息").Load()
Dim g As New CrossTableBuilder("统计表1", DataTables("录入盘点汇总信息"))
g.HGroups.AddDef("款序号")
g.HGroups.AddDef("原款号")
g.HGroups.AddDef("品名")
g.HGroups.AddDef("吊牌颜色", "颜色")
g.VGroups.AddDef("尺码序号")
g.VGroups.AddDef("尺码")
g.Totals.AddDef("录入数", "录入数")
g.Totals.AddDef("抽样数", AggregateEnum.Average, "抽样数")
g.OrderByTotal = True
g.HorizontalTotal = True
\'g.VerticalTotal = True
g.Build()
Tables("盘点明细表_Table1").DataSource =g.BuildDataSource
Tables("盘点明细表_Table1").Cols.Frozen = 2

Dim g1 As New Subtotalgroup \'定义一个新的分组
g1.GroupOn = "款序号" \'分组列为客户列
g1.TotalOn = "合计_录入数"

Dim g2 As New Subtotalgroup \'定义一个新的分组
图片点击可在新窗口打开查看此主题相关图片如下:无法统计.png
图片点击可在新窗口打开查看
g2.GroupOn = "款序号" \'分组列为客户列
g2.TotalOn = "合计_抽样数"
With Tables("盘点明细表_Table1")
    .SubtotalGroups.Clear() \'清除原有的分组
    .SubtotalGroups.Add(g1) \'加入刚刚定义的分组
    .SubtotalGroups.Add(g2) \'加入刚刚定义的分组
    .Subtotal() \'生成汇总模式
End With

--  作者:有点蓝
--  发布时间:2021/9/9 10:08:00
--  
请上传实例测试
--  作者:可乐七号
--  发布时间:2021/9/9 10:15:00
--  
我是把数据库和项目备份直接以添加附件的方式上传么?
--  作者:有点蓝
--  发布时间:2021/9/9 10:34:00
--  
嗯,单个文件不能大于2M,如果大,可以放到网盘提供下载链接。或者新建一个项目设置为内部表,然后重现同样的错误
--  作者:可乐七号
--  发布时间:2021/9/9 10:40:00
--  
链接:https://pan.baidu.com/s/1-3TpEmM57Dw--4QC4gBk7A 
提取码:2324

里面一个数据库和一个项目备份
[此贴子已经被作者于2021/9/9 10:40:57编辑过]

--  作者:可乐七号
--  发布时间:2021/9/9 10:47:00
--  
已经上传,接收请回复一下。
--  作者:有点蓝
--  发布时间:2021/9/9 11:52:00
--  
我这边测试没有问题,到有问题的电脑执行代码,然后跟踪数据库执行了什么sql?拿这个sql到数据库执行看看效果

视图下面sql改改试试

                       (SELECT  TOP (10000) 吊牌信息_1.所属供应商, 吊牌信息_1.款序号, 吊牌信息_1.吊牌颜色, 吊牌信息_1.尺码, COUNT(1) 
                                           AS 抽样数

另外只取前10000行数据?TOP (10000)

另外建议把关联的2个表,商品id和编码加到索引里,可以提高10倍查询速度:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=158943&replyID=&skin=1

--  作者:可乐七号
--  发布时间:2021/9/9 13:50:00
--  
谢谢,我已经加了索引,速度是快了。不过还有疑问
1.你说的到有问题的电脑执行代码,然后跟踪数据库执行了什么sql?这个怎么操作。
2.你看这个附件。在有问题的电脑上,在开发工具的查询表里有这个抽样数,但在我自己做的窗口中打开没有。数据就来自己一张视图。
图片点击可在新窗口打开查看此主题相关图片如下:开发工具的查询表抽样数据.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/9/9 14:04:00
--  
跟踪sql百度“sql profiler”

是不是连接的不是同一个数据库?