Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:多条件统计数量

1楼
wlj88868 发表于:2024/4/20 15:14:00

Dim dr As DataRow = e.DataRow
Dim dt As DataTable = DataTables("销售资料")
If e.DataCol.Name = "管辖部门" Then
    dr("销售数量") = dt.Compute("Sum(数量)", "[管辖部门] = '" & dr("管辖部门") & "'")
End If

 

老师我想在开piao月份输入4,,把销售资料的4月份的数量统计出来,,不管几号的是4月份的都统计出来,需要怎么做呀

现在就是不会分月统计麻烦指教一下


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

图片点击可在新窗口打开查看此主题相关图片如下:1713597060142.png
图片点击可在新窗口打开查看
2楼
有点蓝 发表于:2024/4/20 15:36:00
参考:http://www.foxtable.com/webhelp/topics/2720.htm

dim m as string = "4"
Dim y As Integer = Date.Today.Year
Dim 
dt1 As New Date(ym1)
Dim 
dt2 As New Date(ymDate.DaysInMonth(ym)) '获取本月的最后一天
Dim 
Filter As String "[管辖部门] = '" & dr("管辖部门") & "' and 销售日期 >= #" & dt1 & "# And 销售日期 <= #" & dt2 & "#"
dr("销售数量") = dt.Compute("Sum(数量)", Filter )
3楼
wlj88868 发表于:2024/4/20 16:22:00

是2个表的,,,是不是[开piao月份]='"销售日期 >= #" & dt1 & "# And 销售日期 <= #" & dt2 & "#"

dim m as string = "4"  这个是不是意思就统计4月份,,开piao月份输入是5月份是不是不可以的

dim m as string = e.datarow  这里是不是要这样才有用的啊


图片点击可在新窗口打开查看此主题相关图片如下:1713600933571.png
图片点击可在新窗口打开查看
4楼
有点蓝 发表于:2024/4/20 16:29:00
'代码写完整啊,我只是改了和问题有关的一段

Select Case e.DataCol.Name
    Case "管辖部门", "开piao月份"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("管辖部门") OrElse dr.IsNull("开piao月份") Then
            dr("销售数量") = Nothing
        Else
            Dim m As integer = dr("开piao月份")
            Dim y As Integer = Date.Today.Year
            Dim dt1 As New Date(y, m, 1)
            Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) '获取本月的最后一天
            Dim Filter As String = "[管辖部门] = '" & dr("管辖部门") & "' and 销售日期 >= #" & dt1 & "# And 销售日期 <= #" & dt2 & "#"
            Dim dt As DataTable = DataTables("销售资料")
            dr("销售数量") = dt.Compute("Sum(数量)", Filter)
        End If
End Select
5楼
wlj88868 发表于:2024/4/20 16:35:00

Dim dr As DataRow = e.DataRow
Dim dt As DataTable = DataTables("销售资料")
'If e.DataCol.Name = "管辖部门" Then
    'dr("销售数量") = dt.Compute("Sum(数量)", "[管辖部门] = '" & dr("管辖部门") & "'")
'End If
Dim m As String = e.DataRow("开piao月份")
Dim y As Integer = Date.Today.Year
Dim dt1 As New Date(y, m, 1)
Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) '获取本月的最后一天
Dim Filter As String = "[管辖部门] = '" & dr("管辖部门") & "' and 销售日期 >= #" & dt1 & "# And 销售日期 <= #" & dt2 & "#"
dr("销售数量") = dt.Compute("Sum(数量)", Filter)

 

 

谢谢老师,,可以实现了

6楼
有点蓝 发表于:2024/4/20 16:41:00
5楼这种不是合理地用法,请参考4路,学会写完整的逻辑,不然可能会导致程序崩溃:http://www.foxtable.com/webhelp/topics/1522.htm
共6 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .05859 s, 2 queries.