以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  按时间段统计数值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188654)

--  作者:ycs5801
--  发布时间: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,这段时间的货物数量和,应该怎么改?也就是主表加了一个日期范围,


--  作者:有点蓝
--  发布时间:2023/10/9 15:50:00
--  
b.filter = "日期>=#01/05/2023# and 日期<=#08/09/2023#"
--  作者:ycs5801
--  发布时间:2023/10/9 16:05:00
--  
运行后提示我#附近有语法错误呢?
--  作者:有点蓝
--  发布时间:2023/10/9 16:10:00
--  
http://www.foxtable.com/webhelp/topics/2343.htm
--  作者:ycs5801
--  发布时间:2023/10/9 21:30:00
--  
还是相同实例,b.Groups.AddDef("cargo") \'根据产品名称分组,这句,假如cargo列分别有产品a,b,c,我现在只想得到产品b的统计结果,不需要a和 c的,怎样直接得到?

--  作者:有点蓝
--  发布时间:2023/10/9 21:57:00
--  
b.filter = "cargo=\'b\'"
--  作者:ycs5801
--  发布时间:2023/10/9 22:01:00
--  
解决了:b.Filter = "[客户] = \'CS01\'"
--  作者:ycs5801
--  发布时间:2023/10/10 13:45:00
--  
b.Totals.AddDef("重量") \'对数量进行统计,现在想新增统计项,对操作表中的“重量”列进行求和,前提是操作表中“次数”列等于1的行,怎样写?
--  作者:有点蓝
--  发布时间:2023/10/10 13:48:00
--  
不都是一样的用法吗,换个条件就不会?

b.filter = "次数=1"
--  作者:ycs5801
--  发布时间: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那列没有数值了