示例一
假定要统计同一客户订购不同产品的数量,由于订单表没有产品名称和客户名称列,如果只根据订单表生成统计表,只能显示产品ID和客户ID,显然这样的统计表太不友好了,毕竟没有人会记得每个ID对应的 具体名称是什么。
所以我们需要从产品表提取产品名称,从客户表提取客户名称列:
Dim b As New SQLCrossTableBuilder("统计表1","订单")
b.ConnectionName = "Sale"
b.AddTable("订单","产品ID","产品","产品ID") '添加统计表
b.AddTable("订单","客户ID","客户","客户ID") '添加统计表
b.HGroups.AddDef("客户名称") '添加客户列用于水平分组
b.VGroups.AddDef("产品名称","产品名称_{0}") '添加产品列用于垂直分组,并设置了Pattern参数
b.Totals.AddDef("数量") '添加数量列用于统计
b.Build '生成统计表
Maintable = Tables("统计表1") '打开生成的统计表
生成的统计结果:
这是帮助中的例子,我把它加自己的注释,注意蓝色字。请看我的理解是否正确:
Dim b As New SQLCrossTableBuilder("统计表1","订单") ‘因为要统计的是订单的数据。
b.ConnectionName = "Sale" ’如果是内部表,此行不要,如果是外部表,必须添加此行。
b.AddTable("订单","产品ID","产品","产品ID") '添加统计表 ‘添加订单和产品的统计表,这两个表可以通过产品ID联系起来,订单是子表,产品是父表。’添加订单和客户的统计表,这两个表可以通过客户ID联系起来,订单是子表,客户是父表,添加这两个统计表的原因是通过订单的产品ID找到对应的产品表的产品ID,以下同理。
b.AddTable("订单","客户ID","客户","客户ID") '添加统计表
b.HGroups.AddDef("客户名称") '添加客户列用于水平分组
b.VGroups.AddDef("产品名称","产品名称_{0}") '添加产品列用于垂直分组,并设置了Pattern参数
b.Totals.AddDef("数量") '添加数量列用于统计
问题:
1、假如订单表还是上图所示,订单表中的P01,P02,P03属于A公司的产品,P04,P05属于B公司的产品,关于产品与A,B公司有另外的表,表名产品库,但是上图中订单表没有显示A公司或B公司等。
如何统计A公司和B公司的数量和金额。我依照帮助和我的理解无法统计出来,请帮助。