以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 边学边练手,请教SQLCrossTableBuilder用法 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=6501)
|
-- 作者:唐尸三摆手
-- 发布时间:2010/4/6 16:01:00
-- 边学边练手,请教SQLCrossTableBuilder用法
数据源为erp,有四个表 第一个表aec,有订单号,合同号,产品编码,计划数量,交货期五列(其他列省略不提)。 第二个表eba,有合同号,销售单位两列(其他列省略不提)。 第三个表aaa,有产品编码,产品名称,分类码三列。 第四个表aam,有分类码,分类名称两列。
关联情况:aec表和eba表通过“合同号”建立关联;aec表和aaa表通过“产品编码”建立关联。aaa表和aam表通过“分类码”建立关联。
现在希望通过SQLCrossTableBuilder来实现这样的效果:
垂直分组:aec表中的"产品编码"对应的“分类码”和“分类名称” 水平分组:aec表中的“交货期”,按月分组。 统计列:aec表中的“计划数量”
请高手指教一下,如何设置代码,自己没弄出来,有点复杂,呵呵
Dim b As New SQLCrossTableBuilder("统计表1",aec) b.C b.AddTable(aec,"产品编码",aaa,"产品编码") \'添加统计表 b.AddTable(aaa,"分类码",aam,"分类码") \'添加统计表 b.AddCols(aaa,"分类码") b.AddCols(aam,"分类名称") b.HGroups.AddDef("分类码") b.HGroups.AddDef("分类名称") b.VGroups.AddDef("交货期",DateGroupEnum.Month,"月") b.Totals.AddDef("计划数量") b.Build \'生成统计表 Maintable = Tables("统计表1")
此主题相关图片如下:pic054.jpg

[此贴子已经被作者于2010-4-6 16:06:09编辑过]
|
-- 作者:唐尸三摆手
-- 发布时间:2010/4/6 17:37:00
--
各位能不能帮帮忙啊,如何能实现上述效果啊,就是太复杂啊,前两列都不是基表中的字段
|
-- 作者:mr725
-- 发布时间:2010/4/6 17:42:00
--
给个例子帮你测试,光看图不得要领,因为情况多样。
也许你得用 aaa 表作为基础表来统计更好。
[此贴子已经被作者于2010-4-6 19:59:45编辑过]
|
-- 作者:唐尸三摆手
-- 发布时间:2010/4/7 15:23:00
--
终于实现了,可是filter条件中能否加入变量呢
|
-- 作者:狐狸爸爸
-- 发布时间:2010/4/7 15:24:00
--
以下是引用唐尸三摆手在2010-4-7 15:23:00的发言: 终于实现了,可是filter条件中能否加入变量呢
动态合成表达式,这可是基本功哦
|
-- 作者:唐尸三摆手
-- 发布时间:2010/4/9 13:41:00
--
Dim b As New SQLCrossTableBuilder("a","aec00000") b.c b.AddTable("aec00000","itemcode","aaa00000","code") \'添加统计表 b.AddTable("aec00000","id_contract","eba00000","id_contract") \'添加统计表 b.AddTable("aaa00000","classcode","aam00000","classcode") \'添加统计表 b.AddCols("aam00000","classcode") \'指定列来源 b.AddCols("eba00000","sellunit") \'指定列来源 b.AddCols("aam00000","classname") \'指定列来源 b.HGroups.AddDef("classcode","分类码") \'添加水平分组 b.HGroups.AddDef("classname".trim(),"分类名称") \'添加水平分组 b.VGroups.AddDef("requiredate",DateGroupEnum.none) \'添加垂直分组 b.Totals.AddDef("plannum") \'添加数量列用于统计 b.VerticalTotal=true
classname列内容有空格,希望在统计结果中删除掉,上述红色部分代码设置为什么不行呢
[此贴子已经被作者于2010-4-9 13:41:50编辑过]
|
-- 作者:狐狸爸爸
-- 发布时间:2010/4/9 17:48:00
--
1、代码不能用在SQL语句中,SQL语句有自己函数 2、表达式应该用AddExp 3、SQL Server没有Trim
b.HGroups.AddExp("Replace(classname, \' \', \'\'", "分类名称") \'添加水平分组
|
-- 作者:唐尸三摆手
-- 发布时间:2010/4/10 10:02:00
--
提示无法完成延时准备
|