以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 跨表统计问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85882) |
||||
-- 作者:实话实说 -- 发布时间:2016/6/4 15:42:00 -- 跨表统计问题 我想一步得到表D订单数量的统计数据(对表A、表B、表C的数量列按代码分组统计后求和,统计条件:逻辑列为空)
[此贴子已经被作者于2016/6/4 15:56:03编辑过]
|
||||
-- 作者:Hyphen -- 发布时间:2016/6/4 16:28:00 -- 创建查询表http://www.foxtable.com/help/topics/2329.htm Dim sql As String = "sel ect 代码,sum(计划数量) as 数量 from {表A} where OK is null or OK=false group by 代码" sql &= " union all Sele ct 代码,sum(完工数量) As 数量 from {表B} where 发货 Is null Or 发货=False group by 代码" sql &=" union all Sele ct 代码,sum(出货数量) As 数量 from {表C} where 出货 Is null Or 出货=False group by 代码" Dim g As New GroupTableBuilder("统计表1", sql) g.Groups.AddDef("代码") g.Totals.AddDef("数量") g.Build() MainTable = Tables("统计表1") |
||||
-- 作者:实话实说 -- 发布时间:2016/6/4 17:08:00 -- 我不想建统计表,直接在表D得到结果 |
||||
-- 作者:Hyphen -- 发布时间:2016/6/4 17:19:00 -- For Each dr As Row In Tables("表D").Rows Dim a = Tables("表A").Compute("sum(计划数量)",CExp("代码=\'{0}\' and OK = false ",dr("代码"))) Dim b = Tables("表B").Compute("sum(完工数量)",CExp("代码=\'{0}\' and 发货 = false ",dr("代码"))) Dim c = Tables("表C").Compute("sum(出货数量)",CExp("代码=\'{0}\' and 出货 = false",dr("代码"))) dr("订单数量") = a+b+c Next
|
||||
-- 作者:实话实说 -- 发布时间:2016/6/4 17:38:00 -- 谢了 |