Foxtable(狐表)用户栏目专家坐堂 → 数值分布统计只有一列


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

主题:数值分布统计只有一列

美女呀,离线,留言给我吧!
susu312
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
数值分布统计只有一列  发帖心情 Post By:2018/9/29 17:01:00 [只看该作者]

  Dim b As New GroupTableBuilder("占比统计表",DataTables("person"))
  b.Groups.AddDef(zd(TongJi) , TongJi)
  For Each c As String In cs.split(",")
         Dim val As Integer = zd2(c)
         If val = 50 Then
              b.Totals.AddExp("人数_60以下"," Case When  age < 60 Then 1 Else 0 End ",AggregateEnum.Count)
         Else If val = 90
              b.Totals.AddExp("人数_90以上"," Case When  age >= 90 Then 1 Else 0 End ")
              MessageBox.Show("yy")
         Else
              b.Totals.AddExp("人数_& c &", " Case When  age >=val And  age < val+10  Then 1 Else 0 End ")
              MessageBox.Show("zz")
        End If
  Next
  t=b.build()
数值分布统计只有一列


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


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

最基本的表达式用法咯

b.Totals.AddExp("人数_& c &", " Case When  age >=" & 
val & " And  age < " & val+10 & "  Then 1 Else 0 End ",AggregateEnum.Count)

 回到顶部
美女呀,离线,留言给我吧!
susu312
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/9/29 17:15:00 [只看该作者]

以下是引用有点蓝在2018/9/29 17:07:00的发言:
最基本的表达式用法咯

b.Totals.AddExp("人数_& c &", " Case When  age >=" & 
val & " And  age < " & val+10 & "  Then 1 Else 0 End ",AggregateEnum.Count)

  Dim b As New GroupTableBuilder("占比统计表",DataTables("person"))
  b.Groups.AddDef(zd(TongJi) , TongJi)
  For Each c As String In cs.split(",")
         Dim val As Integer = zd2(c)
         If val = 50 Then
              b.Totals.AddExp("人数_60以下"," Case When  age < 60 Then 1 Else 0 End ",AggregateEnum.Count)
         Else If val = 90
              b.Totals.AddExp("人数_90以上"," Case When  age >= 90 Then 1 Else 0 End ")
              MessageBox.Show("yy")
         Else
              b.Totals.AddExp("人数_& c &", " Case When  age >=val And  age < val+10  Then 1 Else 0 End ")
              MessageBox.Show("zz")
        End If
  Next
  t=b.build()

 

还是只有一列,只有年龄列,没有生成统计列,红色代码我改过了,还是这样的

[此贴子已经被作者于2018/9/29 17:17:40编辑过]

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


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

去掉AggregateEnum.Count

b.Totals.AddExp("人数_" & c, " Case When  age >=" & val & " And  age < " & val+10 & "  Then 1 Else 0 End ")

 回到顶部
美女呀,离线,留言给我吧!
susu312
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/9/29 17:20:00 [只看该作者]

以下是引用有点蓝在2018/9/29 17:17:00的发言:
去掉AggregateEnum.Count

b.Totals.AddExp("人数_" & c, " Case When  age >=" & val & " And  age < " & val+10 & "  Then 1 Else 0 End ")

还是一列,我之前是没有count,也是一列,加上count也是一列,


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


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

改后的代码?或者上传实例说明

 回到顶部
美女呀,离线,留言给我吧!
susu312
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/9/29 17:26:00 [只看该作者]

以下是引用有点蓝在2018/9/29 17:17:00的发言:
去掉AggregateEnum.Count

b.Totals.AddExp("人数_" & c, " Case When  age >=" & val & " And  age < " & val+10 & "  Then 1 Else 0 End ")


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

 

 

应该是后台统计,我改过来后 又报这个错误,实在不知道咋回事


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


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

改后的代码?或者上传实例说明

 回到顶部
美女呀,离线,留言给我吧!
susu312
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/9/29 17:36:00 [只看该作者]

以下是引用有点蓝在2018/9/29 17:34:00的发言:
改后的代码?或者上传实例说明

 Dim b As New  SQLGroupTableBuilder("占比统计表1","person")
  b.Groups.AddDef(zd(TongJi) , TongJi)
  For Each c As String In cs.split(",")
         Dim val As Integer = zd2(c)
         If val = 50 Then
              b.Totals.AddExp("人数_60以下"," Case When  age < 60 Then 1 Else 0 End ")
         Else If val = 90
              b.Totals.AddExp("人数_90以上"," Case When  age >= 90 Then 1 Else 0 End ")
         Else
              b.Totals.AddExp("人数_& c &", " Case When  age >=" & val & " And  age < " & val+10 & "  Then 1 Else 0 End ")
        End If
  Next
  t=b.build()


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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2018/9/29 21:27:00 [只看该作者]

改为这样看看:

Dim b As New  SQLGroupTableBuilder("占比统计表1","person")
b.Groups.AddDef(zd(TongJi) , TongJi)
b.Totals.AddExp("人数_60以下"," Case When  age < 60 Then 1 Else 0 End ")
b.Totals.AddExp("人数_90以上"," Case When  age >= 90 Then 1 Else 0 End ")
For Each c As String In cs.split(",")
    Dim val As Integer = zd2(c)
    If val = 50 OrElse val = 90 Then
    Else
        MessageBox.show(c)
        b.Totals.AddExp("人数_& c &", " Case When  age >=" & val & " And  age < " & val+10 & "  Then 1 Else 0 End ")
    End If
Next
t = b.build()

如果不行,只能上传例子和数据库进行测试

 回到顶部
总数 15 1 2 下一页