以文本方式查看主题

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

--  作者:utcxray
--  发布时间:2015/6/4 12:24:00
--  联合统计问题
\'按供应商、型号统计销售
Dim bb As New SQLGroupTableBuilder("统计表1","出库")
bb.C
bb.AddTable("出库","型号","采购明细","型号") \'添加统计表
bb.Groups.AddDef("出库日期", DateGroupEnum.Year, "年") \'根据日期按年分组
bb.Groups.AddDef("{采购明细}.供应商") \'根据供应商名称分组
bb.Groups.AddDef("{采购明细}.型号") \'根据型号名称分组
bb.Totals.AddDef("{出库}.出库数量") \'对数量进行统计
bb.Totals.Addexp("出货金额","{出库}.出库数量*{出库}.销售单价") \'对数量进行统计
bb.Subtotal=True
Tables("客户产品分析_Table2").DataSource = bb.BuildDataSource()
此代码可以统计出数字,但个别统计数字有误,请指点。
采购明细表中有供应商、型号字段,出库表中有型号、出库数量字段,目的想统计每家供应商的每种型号对销售的贡献。

--  作者:y2287958
--  发布时间:2015/6/4 12:32:00
--  
上例子并详细说明
--  作者:大红袍
--  发布时间:2015/6/4 14:18:00
--  

 SqlGroupTableBuilder,多表的情况下,必须是父子表情况。

 

 也就是不能用采购明细表,而只能用供应商表做父表。


--  作者:大红袍
--  发布时间:2015/6/4 14:20:00
--  

 如果要用 采购明细 表,就必须先把 采购明细 表分组得到供应商表,然后再连接查询 出库 表


--  作者:utcxray
--  发布时间:2015/6/4 16:00:00
--  
图片点击可在新窗口打开查看图片点击可在新窗口打开查看在定义SQLGroupTableBuilder的时候,只能指定一个统计表,也就是基表。

如果要同时针对多个表进行统计,可以使用AddTable方法添加表,参与统计的表相互之间必须存在某种联系。

添加统计表的语法为:

AddTable(Table1,Col1,Table2,Col2)

Table1:基表,或者已经添加的数据表 ,称之为左表。
Col1:  Table1通过此列和Table2关联。
Table2:要添加的统计表,称之为右边。  
Col2:  Table2通过此列和Table1关联。

提示:

1、Table1(左表)和Table2(右表)并非一定要事先建立关联,只需两者的数据可以通过指定的列关联起来即可。
3、如果两个表存在一对多的父子关系,那么建议将多方(子表)作为左表,一方(父表)作为右表。
3、参与统计的表可以是未加载的数据表,只要数据源存在此表即可。


根据帮助中介绍,采购明细表是父表(右表),出库表是子表(左表)。应该没错的呀。两个表通过型号联系,型号唯一


--  作者:大红袍
--  发布时间:2015/6/4 16:02:00
--  

 呃,根本就不是父子关系,看表面就知道是多对多关系。你见过一个孩子有多个父亲的吗?

 

 


--  作者:utcxray
--  发布时间:2015/6/4 16:08:00
--  
我再看看,谢谢
[此贴子已经被作者于2015/6/4 16:09:02编辑过]