以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]请教施工费用合计计算方式  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=195017)

--  作者:明天的灵
--  发布时间:2025/2/16 23:11:00
--  [求助]请教施工费用合计计算方式
求验收记录表中各施工单位的费用合计施工
要求,对于同一施工单位、同一工程(即工程编号一样),只计算一次施工费用。同一工程,只有一家施工单位。
即以下数据,序号4、5是同一工程,对于“单位2”的工程编号为“cdfk-250”只计一次“200000”费用。
拟排除“工程编号”重复值后,再用按施工单位分组统计“施工费”,可否?


图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:施工费用.table




[此贴子已经被作者于2025/2/16 23:19:08编辑过]

--  作者:明天的灵
--  发布时间:2025/2/16 23:30:00
--  
\'排除工程编号重复的记录
Tables("验收记录").RepeatFilter("工程编号", 1) 

‘再组合统计施工费用,显示结果不符合要求。因以下计算公式是针对DataTables,而不是Tables
Dim g As New GroupTableBuilder("施工费用", DataTables("验收记录"))
g.Groups.AddDef("施工单位")
g.Totals.AddDef("施工费")
g.Build()
MainTable = Tables("施工费用")

--  作者:y2287958
--  发布时间:2025/2/17 11:30:00
--  
Dim sql命令 As New SQLCommand
sql命令.CommandText = "s e lect max([_Identify]) as ID from {验收记录} group by 工程编号"

Dim g As New GroupTableBuilder("施工费用", DataTables("验收记录"))
g.Groups.AddDef("施工单位")
g.Totals.AddDef("施工费")
g.Filter = "_Identify in(" & String.Join(",", sql命令.ExecuteReader.datarows.Select(Function(行) CInt(行("ID")))) & ")"
g.Build()
MainTable = Tables("施工费用")

--  作者:明天的灵
--  发布时间:2025/2/17 14:30:00
--  
感谢“y2287958” 狐神,结果正确。代码直接照抄了,谢谢。