Foxtable(狐表)用户栏目专家坐堂 → 组合统计表、查询表的方法哪些


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

主题:组合统计表、查询表的方法哪些

美女呀,离线,留言给我吧!
tubairabbit
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:70 积分:971 威望:0 精华:0 注册:2014/2/18 14:27:00
组合统计表、查询表的方法哪些  发帖心情 Post By:2014/6/5 11:13:00 [只看该作者]

组合统计表、查询表的方法有哪些?

 

比如:

有表A,表B

要生成的表C形如:

产品编号  产品规格1 产品规格2  产品数量汇总  产品销售金额汇总           

             (查询A)   (查询A) (分组统计B) (分组统计B)

有哪些方法?

 

如果想用

Dim b As New GroupTableBuilder("统计表1",DataTables("表B"))
Dim dt1 As fxDataSource

b.Groups.AddDef("产品编号") '根据产品分组
b.Totals.AddDef("产品数量",AggregateEnum.Sum,"产品数量")
b.Totals.AddDef("产品销售金额",AggregateEnum.Sum,"产品销售金额汇总")

dt1 = b.BuildDataSource()

 

再用Combine()

查询表怎么写?


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/6/5 11:20:00 [只看该作者]



Dim b As New GroupTableBuilder("统计表1",DataTables("表B"))
Dim dt1 As fxDataSource

b.Groups.AddDef("产品编号") '根据产品分组
b.Totals.AddDef("产品数量",AggregateEnum.Sum,"产品数量") 
b.Totals.AddDef("产品销售金额",AggregateEnum.Sum,"产品销售金额汇总")

dt1 = b.BuildDataSource()

Dim b2 As New GroupTableBuilder("统计表1",DataTables("表A"))
Dim dt2 As fxDataSource

b2.Groups.AddDef("产品编号") '根据产品分组
b2.Totals.AddDef("产品数量",AggregateEnum.Sum,"产品数量") 
b2.Totals.AddDef("产品销售金额",AggregateEnum.Sum,"产品销售金额汇总")

dt2= b.BuildDataSource()


dt1.Combine("产品编号",dt2,"产品编号")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/5 11:21:00 [只看该作者]

 只能组合统计表,查询表A不能组合,除非把查询表A也弄成统计表。

 

 具体问题,请上传例子。

[此贴子已经被作者于2014-6-5 11:21:19编辑过]

 回到顶部
美女呀,离线,留言给我吧!
tubairabbit
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:70 积分:971 威望:0 精华:0 注册:2014/2/18 14:27:00
  发帖心情 Post By:2014/6/5 14:34:00 [只看该作者]

表A:荒料编号是唯一值

荒料编号  中文品名 级别 

001        墨绿麻    A    

002        金山麻    A

003        娱乐金麻 A

004        娱乐金麻 B

 

 

表B(片号是唯一值)

荒料编号  加工切片大板匝号  片号   面积      销售金额

001       Z1                      p1      100     20

001       Z1                      p2      100     20

001       Z2                      p3      200     40

001       Z2                      p4      200     40

002       B1                      p5       50      12

002       B1                      p6       50      12

002       B1                      p7       50      12

生成报表:(按“荒料编号-匝号”分组求和,但是前面还要带上该荒料编号的品名、级别属性)

荒料编号   中文品名  级别  加工切片大板匝号  片数求和  面积求和 销售金额求和

001       墨绿麻    A        Z1                     2          200         40

001       墨绿麻    A        Z2                     2          400          80

002       金山麻    A        B1                     3          150          36

 

之前没写清楚,2楼的是要表A、表B结构一样,我的表A、表B是有父子关系,要怎么把查询表弄成统计表?

[此贴子已经被作者于2014-6-5 14:38:55编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/5 14:38:00 [只看该作者]

方法错了,用这个方法

 

http://www.foxtable.com/help/topics/2317.htm

 

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/5 14:40:00 [只看该作者]


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/6/5 14:41:00 [只看该作者]


 回到顶部
美女呀,离线,留言给我吧!
tubairabbit
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:70 积分:971 威望:0 精华:0 注册:2014/2/18 14:27:00
  发帖心情 Post By:2014/6/9 15:55:00 [只看该作者]

按“有点甜”的方法,结合我的实际例子试了一下:

(查询字段一部分是放在分组列里,一部分是按“取最大值”的方法读出来。)

 

Dim jb As new SQLJoinTableBuilder("查询表1","加工大板")
jb.AddTable(……)  '按关联情况写
jb.AddCols("项目组","荒料编号","中文品名","级别","加工厂","加工厂大板匝号","片号","面积","成品存放仓库","入库日期")

Dim b As new GroupTableBuilder("统计表1",jb.BuildSQL,"Connectionaa")
Dim dt1 As fxDataSource

b.Groups.AddDef("项目组")    '查询字段放在分组列
b.Groups.AddDef("荒料编号")   '查询字段放在分组列
b.Groups.AddDef("中文品名")   '查询字段放在分组列
b.Groups.AddDef("级别")       '查询字段放在分组列
b.Groups.AddDef("加工厂")     '查询字段放在分组列
b.Groups.AddDef("加工厂大板匝号")  
b.Totals.AddDef("片号",AggregateEnum.Count,"片数")  
b.Totals.adddef("面积")
b.Totals.adddef("成品存放仓库",AggregateEnum.Max)  ‘字符型说明性字段,取某一个值(实际情况同一匝一定存放在同一个仓库)
b.Totals.adddef("入库日期",AggregateEnum.Max)   ‘字符型说明性字段,取某一个值(实际情况同一匝的不同片一定是同样的入库日期)

dt1 = b.BuildDataSource()


Tables("报表_Table1").DataSource = dt1

[此贴子已经被作者于2014-6-9 16:02:29编辑过]

 回到顶部