Foxtable(狐表)用户栏目专家坐堂 → 按时间段统计数值


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

主题:按时间段统计数值

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


加好友 发短信
等级:五尾狐 帖子:1065 积分:7598 威望:0 精华:0 注册:2009/6/24 9:44:00
按时间段统计数值  发帖心情 Post By:2023/10/9 15:47:00 [显示全部帖子]

Dim b As New SQLGroupTableBuilder("统计表1", "操作表")
b.C
b.AddTable("操作表", "sureyid", "主表", "sureyid") '添加统计表
b.Groups.AddDef("cargo") '根据产品名称分组
b.Totals.AddDef("weightofcargo") '对数量进行统计
b.Build '生成统计表
Maintable = Tables("统计表1") '打开生成的统计表

 

假如主表有一列日期列,主表与操作表是通过sureyid进行关联,现在想统计日期列为2023.01.05-2023.08.09,这段时间的货物数量和,应该怎么改?也就是主表加了一个日期范围,


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


加好友 发短信
等级:五尾狐 帖子:1065 积分:7598 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2023/10/9 16:05:00 [显示全部帖子]

运行后提示我#附近有语法错误呢?

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


加好友 发短信
等级:五尾狐 帖子:1065 积分:7598 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2023/10/9 21:30:00 [显示全部帖子]

还是相同实例,b.Groups.AddDef("cargo") '根据产品名称分组,这句,假如cargo列分别有产品a,b,c,我现在只想得到产品b的统计结果,不需要a和 c的,怎样直接得到?

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


加好友 发短信
等级:五尾狐 帖子:1065 积分:7598 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2023/10/9 22:01:00 [显示全部帖子]

解决了:b.Filter = "[客户] = 'CS01'"

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


加好友 发短信
等级:五尾狐 帖子:1065 积分:7598 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2023/10/10 13:45:00 [显示全部帖子]

b.Totals.AddDef("重量") '对数量进行统计,现在想新增统计项,对操作表中的“重量”列进行求和,前提是操作表中“次数”列等于1的行,怎样写?

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


加好友 发短信
等级:五尾狐 帖子:1065 积分:7598 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2023/10/10 14:02:00 [显示全部帖子]

Dim b As New SQLGroupTableBuilder("统计表1", "操作表")
b.C
b.AddTable("操作表", "sureyid", "主表", "sureyid") '添加统计表
b.Groups.AddDef("cargo") '根据产品名称分组
b.Totals.AddDef("weightofcargo") '对数量进行统计
b.Totals.AddDef("bl") '对数量进行统计
Dim filter As String

With e.Form.Controls("StartDate1")
    If .Value IsNot Nothing Then
        Filter = "日期 >= '" & .Value & "'"
    End If
End With
With e.Form.Controls("EndDate1")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "日期 <= '" & .Value & "'"
    End If
End With
With e.Form.Controls("货物")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "[cargo]= '" & .Value & "'"
    End If
End With
With e.Form.Controls("船代")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "[company]= '" & .Value & "'"
    End If
End With

'b.filter = "日期>='01/05/2023' and 日期<='08/09/2023' and [cargo] = '煤'"
If Filter > "" Then

    b.filter = filter & "and 次数=1"
   
    Tables("主表_Table5").DataSource = b.BuildDataSource()
    ' Maintable = Tables("统计表1") '打开生成的统计表
    'b.Build '生成统计表

Else
    messagebox.Show("请填入选项再搜索")
End If

 

修改黄色部分后,现在weightofcargo那列没有数值了


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


加好友 发短信
等级:五尾狐 帖子:1065 积分:7598 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2023/10/10 14:04:00 [显示全部帖子]

现在应该是次数等于1对两列统计数值都产生影响了,我的要求是次数等于1只对bl列的求和产生影响。

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


加好友 发短信
等级:五尾狐 帖子:1065 积分:7598 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2023/10/10 14:19:00 [显示全部帖子]

b.Totals.Addexp("bl", "iif(次数=1,bl,0)")  改成这样运行提示错误
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20231010141721.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:五尾狐 帖子:1065 积分:7598 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2023/10/10 14:32:00 [显示全部帖子]

b.Totals.Addexp("bl", "case 次数 when 1 then bl else 0")     

 

这么写不对,怎么改?


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


加好友 发短信
等级:五尾狐 帖子:1065 积分:7598 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2023/10/10 14:40:00 [显示全部帖子]

Dim b As New SQLGroupTableBuilder("统计表1", "操作表")
b.C
b.AddTable("操作表", "sureyid", "主表", "sureyid") '添加统计表
b.Groups.AddDef("cargo") '根据产品名称分组
b.Totals.AddDef("weightofcargo") '对数量进行统计
'b.Totals.AddDef("bl") '对数量进行统计
b.Totals.Addexp("bl", "case when  次数=1 then bl else 0")                
Dim filter As String

With e.Form.Controls("StartDate1")
    If .Value IsNot Nothing Then
        Filter = "日期 >= '" & .Value & "'"
    End If
End With
With e.Form.Controls("EndDate1")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "日期 <= '" & .Value & "'"
    End If
End With
With e.Form.Controls("货物")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "[cargo]= '" & .Value & "'"
    End If
End With
With e.Form.Controls("船代")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "[company]= '" & .Value & "'"
    End If
End With

'b.filter = "日期>='01/05/2023' and 日期<='08/09/2023' and [cargo] = '煤'"
If Filter > "" Then

    b.filter = filter
   
    Tables("主表_Table5").DataSource = b.BuildDataSource()
    ' Maintable = Tables("统计表1") '打开生成的统计表
    'b.Build '生成统计表

Else
    messagebox.Show("请填入选项再搜索")
End If

 

还是提示同样错误呢?


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