Foxtable(狐表)用户栏目专家坐堂 → 组合多个统计结果如何应用相同的筛选条件啊?


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

主题:组合多个统计结果如何应用相同的筛选条件啊?

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
组合多个统计结果如何应用相同的筛选条件啊?  发帖心情 Post By:2019/9/19 9:23:00 [只看该作者]

例如:跟bd1加一个filter条件,bd1.filter="产品名称='PD01'"

《销售单》没有存储,“产品名称”这一列,所以怎么将 bd2.filter也设应用bd1.filter的条件啊



Dim bd1 As New GroupTableBuilder("统计表1",DataTables("进货单"))
Dim
dt1 As fxDataSource
bd1
.Groups.AddDef("型号") '根据型号分组
bd1
.Totals.AddDef("数量","进货_数量") '对数量进行统计
bd1
.Totals.AddDef("金额","进货_金额") '对金额进行统计
dt1
= bd1.BuildDataSource()

Dim
bd2 As New GroupTableBuilder("统计表2",DataTables("销售单"))
Dim
dt2  As fxDataSource
bd2
.Groups.AddDef("型号") '根据型号分组
bd2
.Totals.AddDef("数量","销售_数量") '对数量进行统计
bd2
.Totals.AddDef("金额","销售_金额") '对金额进行统计
dt2
= bd2.BuildDataSource()

Dim bd3 As New GroupTableBuilder("统计表3",DataTables("退货单"))
Dim
dt3 As fxDataSource
bd3
.Groups.AddDef("型号") '根据型号分组
bd3
.Totals.AddDef("数量","退货_数量") '对数量进行统计
bd3
.Totals.AddDef("金额","退货_金额") '对金额进行统计
dt3 = bd3.BuildDataSource()

dt1.Combine("型号",dt2,"型号") '将销售统计数据组合到进货统计数据
dt1
.Combine("型号",dt3,"型号") '将退货统计数据组合到进货统计数据


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


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/19 11:08:00 [只看该作者]

改为这种方式

Dim bd1 As New GroupTableBuilder("统计表1",DataTables("进货单"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("型号") '根据型号分组
bd1.Totals.AddDef("数量","进货_数量") '对数量进行统计
bd1.Totals.AddDef("金额","进货_金额") '对金额进行统计
bd1.Filter = "名称 = '1'" 
dt1 = bd1.BuildDataSource()

Dim jb2 As New SQLJoinTableBuilder("查询表1","销售单")
jb2.AddCols("型号",True)
jb2.AddExp("销售_数量","Sum({销售单}.数量)")
jb2.AddExp("销售_金额","Sum({销售单}.数量 * {销售单}.售价)")
jb2.Filter = "型号 in (select 型号 from {进货单} where 名称 = '1')" 
‘’Output.Show(jb2.BuildSql())
Dim dt2 As fxDataSource = jb2.BuildDataSource()

Dim jb3 As New SQLJoinTableBuilder("查询表1","退货单")
jb3.AddCols("{退货单}.型号",True)
jb3.AddExp("退货_数量","Sum({退货单}.数量)")
jb3.AddExp("退货_金额","Sum({退货单}.数量 * {退货单}.单价)")
jb3.Filter = "型号 in (select 型号 from {进货单} where 名称 = '1')" 
‘’Output.Show(jb3.BuildSql())
Dim dt3 As fxDataSource = jb3.BuildDataSource()
dt1.Combine("型号",dt2,"型号") '将销售统计数据组合到进货统计数据
dt1.Combine("型号",dt3,"型号")

dt1.show("查询表1")

 回到顶部