Foxtable(狐表)用户栏目专家坐堂 → 交叉统计的精简版的实现


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

主题:交叉统计的精简版的实现

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/8 17:55:00 [显示全部帖子]

1、把下面的删除,报什么错?

 

b.Build '生成统计表
MainTable = Tables("统计表1") '打开生成的统计表

 

2、做个例子发上来测试。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/8 18:23:00 [显示全部帖子]

以下是引用susu312在2018/8/8 18:04:00的发言:


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

我马上做例子给您

 

是不是你列名不匹配,你数据库里面的列名不是英文来的么?你现在改成中文了明显不对。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/8 20:31:00 [显示全部帖子]

1、

 

Dim b As New SQLCrossTableBuilder("统计表1","person")
For Each r As Row In Tables("统计1").Rows
    b.HGroups.AddDef(r("分组列")) '添加列用于水平分组
Next

For Each r As Row In Tables("统计2").Rows
    b.VGroups.AddDef(r("分组列")) '添加列用于水平分组
Next

For Each r As Row In Tables("统计3").Rows
    If r("统计类型") = "记录数"
        b.Totals.AddDef(r("统计列"),AggregateEnum.count) '添加列用于统计
    ElseIf r("统计类型") = "累积值"
        b.Totals.AddDef(r("统计列"),AggregateEnum.sum) '添加列用于统计
    End If
Next

b.Build '生成统计表

 

 

2、是不是你列名不匹配,你数据库里面的列名不是英文来的么?你现在改成中文了明显不对。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/8 21:02:00 [显示全部帖子]

Dim nums1() As String={"sex","age","birth", _
"edu","workdate","politicalStatus", _
"retiredPost","title","leaOrRetire", _
"retireTime","proTecPost","partyTime", _
"organName","partyStanding","retiredDep"}
Dim nums2()  As String={"性别","年龄","出生年月", _
"学历","参加工作日期","政治面貌", _
"离退休职务","享受待遇","状态", _
"离退休时间","专业技术职务","入党时间", _
"单位","党龄","部门"}

 

Dim b As New SQLCrossTableBuilder("统计表1","person")
For Each r As Row In Tables("统计1").Rows
    Dim index As Integer=Array.indexof(nums1,r("分组列"))
    b.HGroups.AddDef(nums1(index))'添加列用于水平分组
Next

For Each r As Row In Tables("统计2").Rows
    Dim index As Integer=Array.indexof(nums1,r("分组列"))
    b.VGroups.AddDef(nums1(index)) '添加列用于垂直分组
Next

For Each r As Row In Tables("统计3").Rows
    Dim index As Integer=Array.indexof(nums1,r("统计列"))
    b.Totals.AddDef(nums1(index), AggregateEnum.Count) '添加列用于统计
Next

b.Build '生成统计表


 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/8 21:38:00 [显示全部帖子]

加上代码

 

b.ConnectionName = "Sale"

 

[此贴子已经被作者于2018/8/8 21:37:54编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/8 22:14:00 [显示全部帖子]

加入判断,类似

 

For Each r As Row In Tables("统计3").Rows
    If r("统计类型") = "记录数"
        b.Totals.AddDef(r("统计列"),AggregateEnum.count) '添加列用于统计
    ElseIf r("统计类型") = "累积值"
        b.Totals.AddDef(r("统计列"),AggregateEnum.sum) '添加列用于统计
    End If
Next


 回到顶部