以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  分组统计出现重复列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85826)

--  作者:xujie80
--  发布时间:2016/6/3 9:43:00
--  分组统计出现重复列
我要对“员工资料”中的“婚姻状况”字段进行分组统计,“婚姻状况”分为“未婚”、“已婚”、“丧偶”、“离异”、“其它”,录入员有时疏忽有空值,有时填了“无”。
语句如下:
Dim b As New crossTableBuilder("统计表1",DataTables("员工资料")) \'定义交叉分组表
b.hGroups.AddDef("部门村居","村居")
b.hGroups.AddDef("所站办组","组别")
b.hGroups.AddDef("姓名")
b.vGroups.AddDef("婚姻状况")
b.Totals.AddDef("婚姻状况",AggregateEnum.count)
b.Build
结果空值、离异、已婚、无各1列,丧偶变成了5列,未婚变成了3列。
图片点击可在新窗口打开查看此主题相关图片如下:工.png
图片点击可在新窗口打开查看


--  作者:大红袍
--  发布时间:2016/6/3 9:45:00
--  
 数据例子发上来。
--  作者:xujie80
--  发布时间:2016/6/3 9:50:00
--  
实例
--  作者:xujie80
--  发布时间:2016/6/3 9:51:00
--  
例子
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:婚姻.foxdb


--  作者:大红袍
--  发布时间:2016/6/3 9:56:00
--  

For Each dr As DataRow In DataTables("员工资料").Select("")
    dr("婚姻状况") = dr("婚姻状况").trim
    If dr("婚姻状况") = Nothing OrElse dr("婚姻状况") = "无" Then
        dr("婚姻状况") = "未婚"
    End If
    If dr("婚姻状况") = "其他" Then
        dr("婚姻状况") = "其它"
    End If
Next

Dim b As New crossTableBuilder("统计表1",DataTables("员工资料")) \'定义交叉分组表
b.hGroups.AddDef("部门村居","村居")
b.hGroups.AddDef("所站办组","组别")
b.hGroups.AddDef("姓名")
b.vGroups.AddDef("婚姻状况")
b.Totals.AddDef("婚姻状况",AggregateEnum.count)
b.Build