Foxtable(狐表)用户栏目专家坐堂 → 怎么用分组统计不重复的行个数


  共有2154人关注过本帖树形打印复制链接

主题:怎么用分组统计不重复的行个数

帅哥哟,离线,有人找我吗?
yiningyl
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:28 积分:466 威望:0 精华:0 注册:2018/3/26 18:04:00
怎么用分组统计不重复的行个数  发帖心情 Post By:2018/5/26 2:07:00 [只看该作者]

各位,我要统计各班学生中有多少个不同民族,多少种不同政治面貌。。。用下面的统计代码,只能统计总的个数,不能去除掉重复的,怎么写才可以分组统计不重复的?

Dim g As New GroupTableBuilder("统计表", DataTables("tjb"))
g.Caption = "统计表"
g.Groups.AddDef("grade")
g.Groups.AddDef("class")
g.Totals.AddDef("zb", AggregateEnum.Count, "民族个数")
g.Totals.AddDef("zzmm", AggregateEnum.Count, "政治面貌种类数")
....

g.VerticalTotal = True
g.SubTotal = True
g.Decimals = 0
g.FromServer = True
g.Build()

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/26 9:24:00 [只看该作者]

试试

Dim g As New GroupTableBuilder("统计表", DataTables("tjb"))
g.Caption = "统计表"
g.Groups.AddDef("grade")
g.Groups.AddDef("class")
g.FromServer = True
g.SubTotal = True
g.Build()

Dim t As Table = Tables("统计表")
Dim dt As DataTable = t.DataTable
dt.DataCols.Add("民族个数",Gettype(Integer) )
dt.DataCols.Add("政治面貌种类数",Gettype(Integer) )
dt.DataCols.Add("合计",Gettype(Integer) ,"民族个数 * 政治面貌种类数")

For Each dr As DataRow In dt.DataRows
    dr("民族个数") = dt.SQLGetValues("zb","grade='" & dr("grade") & "' And class='" & dr("class") & "'")
    dr("治面貌种类数") = dt.SQLGetValues("zzmm","grade='" & dr("grade") & "' And class='" & dr("class") & "'")
Next


 回到顶部
帅哥哟,离线,有人找我吗?
yiningyl
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:28 积分:466 威望:0 精华:0 注册:2018/3/26 18:04:00
  发帖心情 Post By:2018/5/26 11:19:00 [只看该作者]

老师,用你的方法试过了,说找不到 zb 和zzmm列 ,还报错说临时表中不能使用sqlgetvalues (这个可以改成getvalues),找不到列的错误怎么改啊, 前面我用分组统计生成的临时表”统计表"中确实是没有zb ,zzmm这些列的啊
[此贴子已经被作者于2018/5/26 11:24:50编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/26 11:42:00 [只看该作者]

For Each dr As DataRow In dt.DataRows
    dr("民族个数") = DataTables("tjb").SQLGetValues("zb","grade='" & dr("grade") & "' And class='" & dr("class") & "'")
    dr("治面貌种类数") = DataTables("tjb").SQLGetValues("zzmm","grade='" & dr("grade") & "' And class='" & dr("class") & "'")
Next

 回到顶部