Foxtable(狐表)用户栏目专家坐堂 → 跨表统计问题


  共有2395人关注过本帖树形打印复制链接

主题:跨表统计问题

帅哥哟,离线,有人找我吗?
实话实说
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
跨表统计问题  发帖心情 Post By:2016/6/4 15:42:00 [只看该作者]

我想一步得到表D订单数量的统计数据(对表A、表B、表C的数量列按代码分组统计后求和,统计条件:逻辑列为空)

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:跨表统计.foxdb

[此贴子已经被作者于2016/6/4 15:56:03编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By: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")



 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2016/6/4 17:08:00 [只看该作者]

我不想建统计表,直接在表D得到结果


 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2016/6/4 17:38:00 [只看该作者]

谢了


 回到顶部