以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 分组统计与交叉统计的查寻条件相同,但结果不同 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=184749) |
-- 作者:onlinech -- 发布时间:2022/12/28 21:39:00 -- 分组统计与交叉统计的查寻条件相同,但结果不同 分组统计与交叉统计的查寻条件相同,但交叉统计能统计出结果,分组统计只有列,没有行(行数为0) 代码如下: Dim filter As String filter = "( [发货单位] <> \'\' or [收货单位] <> \'\' ) and [更新时间] >= \'" & Date.Today.AddDays( - 3) & "\'" Dim xstj As New CrossTableBuilder("临时统计1", DataTables("称重信息")) xstj.HGroups.AddDef("更新时间", DateGroupEnum.Hour, "时") xstj.VGroups.AddDef("更新时间", DateGroupEnum.Day, "{0}日") xstj.Totals.AddDef("净重", "净重") xstj.OrderByTotal = True xstj.Filter = filter xstj.FromServer = True xstj.Build() Dim lstj As New GroupTableBuilder("临时统计", DataTables("称重信息")) lstj.Groups.AddDef("更新时间", DateGroupEnum.Year, "年") lstj.Groups.AddDef("更新时间", "月") lstj.Groups.AddDef("更新时间", DateGroupEnum.Day, "日") lstj.Groups.AddDef("更新时间", DateGroupEnum.Hour, "时") lstj.Totals.AddDef("净重") lstj.Filter = filter lstj.Build() MainTable = Tables("临时统计") |
-- 作者:有点蓝 -- 发布时间:2022/12/29 8:53:00 -- 这样试试 filter = "( [发货单位] <> \'\' or [收货单位] <> \'\' or [发货单位] is not null or [收货单位] is not null) and [更新时间] >= \'" & Date.Today.AddDays( - 3) & "\'" |
-- 作者:onlinech -- 发布时间:2022/12/29 9:37:00 -- 还是一样的情况,未解决 filter = "[更新时间] >= \'" & Date.Today.AddDays( - 3) & "\'" 问题应该是这条代码,但为什么交叉统计的有数据,分组统计的没有数据呢? |
-- 作者:有点蓝 -- 发布时间:2022/12/29 9:41:00 -- filter = "[更新时间] >= #" & Date.Today.AddDays( - 3) & "#" |
-- 作者:onlinech -- 发布时间:2022/12/29 10:47:00 -- 现在分组与交叉都没有数据了,我这个实例是SQL sever 感觉动态表达式没有问题、语法也没有问题,就是不知道什么原因导致的
|
-- 作者:有点蓝 -- 发布时间:2022/12/29 10:52:00 -- 如果指定.FromServer = True,日期使用单引号,否则使用#号:http://www.foxtable.com/webhelp/topics/2401.htm |
-- 作者:onlinech -- 发布时间:2022/12/30 7:08:00 -- 试了下,仍然不行 我无意中打开系统自带的实例“多表统计”,发现只要是日期的分组统计好像都没有数据,不知道是不是BUG
|
-- 作者:onlinech -- 发布时间:2022/12/30 7:24:00 -- 发现2022-8-18的版本就是不显示数据,之后我又重新装了2021年的版本,“多表统计”就可以显示数据了, 但是我自己的程序,提示”文件版本过高,无法正常打开,请升级您的Foxtable!“ 所以没办法测试了
|
-- 作者:有点蓝 -- 发布时间:2022/12/30 8:31:00 -- 麻烦认真仔细看看6楼说明 Dim g As New GroupTableBuilder("统计表1", DataTables("订单")) g.Groups.AddDef("日期", DateGroupEnum.Year, "年") g.Groups.AddDef("日期", "月") g.Groups.AddDef("日期", DateGroupEnum.Day, "日") g.Totals.AddDef("数量") g.FromServer = True g.Filter = "日期=#1999-01-17#" 内部表。access使用#,SqlServer改为g.Filter = "日期=\'1999-01-17\'" g.Build() MainTable = Tables("统计表1") [此贴子已经被作者于2022/12/30 8:35:39编辑过]
|
-- 作者:onlinech -- 发布时间:2022/12/30 9:15:00 -- 是我截图放错了,2022-8-18的版本就是不显示数据 g.Filter = "日期=\'1999-01-17\'" 2021年版本用同样的代码,就可以显示数据 |