以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何让分组统计显示记录数为零的记录?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127098)

--  作者:ksyrwsg
--  发布时间:2018/11/5 15:04:00
--  如何让分组统计显示记录数为零的记录?
请教一下:我用SQLGroupTableBuilder分组统计,
表1:用户信息
用户
A
B
C
*********************************
表2:项目信息
项目ID 负责人
P01            A
P02            A
P03            A
P04            B
P05            A
P06            B
*********************************************
代码:
Dim b As New SQLGroupTableBuilder("项目承担表","表1")
b.C
b.AddTable("表1","用户","表2","负责人" ) 
b.Groups.AddDef("用户")  
b.Totals.AddDef("负责人",AggregateEnum.Count,“承担项目数”)
b.Build 
**********************************************************
运行结果:

用户  承担项目数
A          4
B          2
**********************************************

但是我想要的结果是:
用户  承担项目数
A          4
B          2
C          0
**********************************************************
用户C,在表2中没有记录,但是我想要列出为“0”,实际中没有列出来,请问如何处理。


--  作者:y2287958
--  发布时间:2018/11/5 15:28:00
--  
上实例
或者在统计表中将没有的新增
[此贴子已经被作者于2018/11/5 15:28:56编辑过]

--  作者:有点甜
--  发布时间:2018/11/5 16:19:00
--  

参考代码

 

Dim jb1 As New SQLJoinTableBuilder("查询表1","表A")
jb1.AddTable("表A","第一列","表B","第一列",JoinModeEnum.right)
jb1.AddExp("父表第一列","{表B}.第一列")
jb1.AddExp("子表第一列","{表A}.第一列")
jb1.AddExp("个数", "iif({表A}.第一列 is null, 0, 1)")
jb1.build
Dim g As New GroupTableBuilder("统计表1", DataTables("查询表1"))
g.Groups.AddDef("父表第一列", "第一列")
g.Totals.AddDef("个数")
g.Build()
MainTable = Tables("统计表1")