以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  统计问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56455)

--  作者:utcxray
--  发布时间:2014/9/5 14:35:00
--  统计问题

图片点击可在新窗口打开查看

图片点击可在新窗口打开查看

图片点击可在新窗口打开查看

示例一

假定要统计同一客户订购不同产品的数量,由于订单表没有产品名称和客户名称列,如果只根据订单表生成统计表,只能显示产品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公司的数量和金额。我依照帮助和我的理解无法统计出来,请帮助。






--  作者:Bin
--  发布时间:2014/9/5 14:49:00
--  
没看懂,能不能上个例子,依着数据解释一下你想要的效果.
--  作者:有点甜
--  发布时间:2014/9/5 14:55:00
--  

 回复1楼。

 

 你得先得到一个有A、B公司的数据表,然后再去统计。

 

 具体例子,具体分析