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


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

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

美女呀,离线,留言给我吧!
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()
数值分布统计只有一列


 回到顶部
美女呀,离线,留言给我吧!
susu312
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
美女呀,离线,留言给我吧!
susu312
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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也是一列,


 回到顶部
美女呀,离线,留言给我吧!
susu312
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
图片点击可在新窗口打开查看

 

 

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


 回到顶部
美女呀,离线,留言给我吧!
susu312
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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()


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


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/9/29 21:31:00 [显示全部帖子]

以下是引用有点酸在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()

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

我这就试,这和例子几乎一摸一样,为啥有问题呀

 

老师,一样的错误

 

 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/9/29 21:34:28编辑过]

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


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/9/29 21:35:00 [显示全部帖子]

以下是引用有点酸在2018/9/29 21:29:00的发言:
或者先用排除法,用简单的进行测试,看看能否通过,如果能通过,可能C值有问题。

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 ")
t = b.build()
好,我用简单的试试,非常感谢老师您

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


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/9/29 21:39:00 [显示全部帖子]

以下是引用有点酸在2018/9/29 21:29:00的发言:
或者先用排除法,用简单的进行测试,看看能否通过,如果能通过,可能C值有问题。

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 ")
t = b.build()

老师, 简单的也过不了,一样的错误,看来total这两句有问题


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


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/9/29 21:46:00 [显示全部帖子]

以下是引用有点酸在2018/9/29 21:29:00的发言:
或者先用排除法,用简单的进行测试,看看能否通过,如果能通过,可能C值有问题。

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 ")
t = b.build()

老师 我错了。我没写数据源,老师,您明天把那个帮助文档改一下,一定把数据源那句加上。非常感谢您大晚上抽时间帮我,非常敬业了


 回到顶部