以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]分组求和问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=136459) |
-- 作者:happy_gile -- 发布时间:2019/6/13 18:12:00 -- [求助]分组求和问题 有一个表 流水 支付方式 支付金额 1 微信 1.00 2 支付宝 1.00 3 现金 1.00 4 微信 2.00 5 支付宝 2.00 6 信用卡 1.00 7 微信 3.00 8 信用卡 2.00 9 现金 2.00 想统计每种支付方式的支付金额合计(每种支付方式第一笔交易除外),代码如何写
|
-- 作者:有点甜 -- 发布时间:2019/6/13 18:14:00 -- 直接分组统计,然后循环每一行,减去第一次的交易,即可。
你需要把统计显示在哪里?是sql语句,还是代码?具体问题做个实例发上来测试。 |
-- 作者:happy_gile -- 发布时间:2019/6/13 18:24:00 -- 直接生成一个临时表就可以,sql 和代码都可以,只要能显示结果就可以(最好能自定义前n笔交易不计算) [此贴子已经被作者于2019/6/13 18:30:57编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/6/13 18:33:00 -- Dim g As New GroupTableBuilder("统计表1", DataTables("表B")) g.Groups.AddDef("第一列") g.Totals.AddDef("第二列") g.Build() Dim t = Tables("统计表1") For Each r As Row In t.Rows Dim fdr = DataTables("表B").find("第一列=\'" & r("第一列") & "\'", "_Identify") If fdr IsNot Nothing Then r("第二列") -= fdr("第二列") End If Next MainTable = Tables("统计表1") |
-- 作者:happy_gile -- 发布时间:2019/6/13 18:44:00 -- 想不计算前10笔记录怎么写呢 |
-- 作者:有点甜 -- 发布时间:2019/6/13 18:52:00 -- 以下是引用happy_gile在2019/6/13 18:44:00的发言:
想不计算前10笔记录怎么写呢
如果是sqlserver数据库,直接用sql语句处理,比较方便,效率也比较高
如果写代码,较为繁琐。
Dim g As New GroupTableBuilder("统计表1", DataTables("表B")) |