以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助][讨论]两个不同分组(类似分组)的统计能放在一个统计表里吗?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=113147)

--  作者:jjjeyes
--  发布时间:2018/1/10 9:48:00
--  [求助][讨论]两个不同分组(类似分组)的统计能放在一个统计表里吗?
有一个数据表,需要通过两个分组(性别、年级编号)求下对应分组的人数、身高平均数、身高标准差、身高指标和
例子如下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.zip

代码如下:
Dim g As New GroupTableBuilder("单项指标统计表", DataTables("评价结果"))
g.Groups.AddDef("性别")
g.Groups.AddDef("年级编号")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "优秀人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "良好人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "及格人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "不及格人数")
g.Totals.AddDef("身高", AggregateEnum.Average, "身高平均数")
g.Decimals = 2
g.Build()
Dim t As Table = Tables("单项指标统计表")
For Each r As Row In t.Rows
r("优秀人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = \'" & r("年级编号") & "\' And 性别 = \'" & r("性别") & "\' And 总分等级 = \'" & "优秀" & "\'")
r("良好人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = \'" & r("年级编号") & "\' And 性别 = \'" & r("性别") & "\' And 总分等级 = \'" & "良好" & "\'")
r("及格人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = \'" & r("年级编号") & "\' And 性别 = \'" & r("性别") & "\' And 总分等级 = \'" & "及格" & "\'")
r("不及格人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = \'" & r("年级编号") & "\' And 性别 = \'" & r("性别") & "\' And 总分等级 = \'" & "不及格" & "\'")  
 If r("性别") = "1" Then
        r("性别") = "男"
    Else
        r("性别") = "女"
    End If
Next
MainTable = t

以上代码会得到下图

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

不过,现在还需要另外求得只用一个分组(年级编号)放在下面,如下图:


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

求解,如何修改以上代码!!!

[此贴子已经被作者于2018/1/10 9:53:31编辑过]

--  作者:有点甜
--  发布时间:2018/1/10 9:57:00
--  
Dim g As New GroupTableBuilder("单项指标统计表", DataTables("评价结果"))
g.Groups.AddDef("性别")
g.Groups.AddDef("年级编号")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "优秀人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "良好人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "及格人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "不及格人数")
g.Totals.AddDef("身高", AggregateEnum.Average, "身高平均数")
g.Decimals = 2
g.Build()
Dim t As Table = Tables("单项指标统计表")
For Each r As Row In t.Rows
    r("优秀人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = \'" & r("年级编号") & "\' And 性别 = \'" & r("性别") & "\' And 总分等级 = \'" & "优秀" & "\'")
    r("良好人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = \'" & r("年级编号") & "\' And 性别 = \'" & r("性别") & "\' And 总分等级 = \'" & "良好" & "\'")
    r("及格人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = \'" & r("年级编号") & "\' And 性别 = \'" & r("性别") & "\' And 总分等级 = \'" & "及格" & "\'")
    r("不及格人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = \'" & r("年级编号") & "\' And 性别 = \'" & r("性别") & "\' And 总分等级 = \'" & "不及格" & "\'")
    If r("性别") = "1" Then
        r("性别") = "男"
    Else
        r("性别") = "女"
    End If
Next
For Each fz As String In DataTables("评价结果").GetValues("年级编号")
    Dim r = t.addnew
    r("年级编号") = fz
    r("人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = \'" & fz & "\'")
    r("优秀人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = \'" & fz & "\' And 总分等级 = \'" & "优秀" & "\'")
    r("良好人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = \'" & fz & "\' And 总分等级 = \'" & "良好" & "\'")
    r("及格人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = \'" & fz & "\' And 总分等级 = \'" & "及格" & "\'")
    r("不及格人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = \'" & fz & "\' And 总分等级 = \'" & "不及格" & "\'")
Next
MainTable = t

--  作者:jjjeyes
--  发布时间:2018/1/10 9:59:00
--  
感谢您的秒回!!!