Foxtable(狐表)用户栏目专家坐堂 → 6.27更新中的多表连接问题(已解决,原来增加了一个连接类型参数)


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

主题:6.27更新中的多表连接问题(已解决,原来增加了一个连接类型参数)

帅哥哟,离线,有人找我吗?
reachtone
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
6.27更新中的多表连接问题(已解决,原来增加了一个连接类型参数)  发帖心情 Post By:2011/6/27 18:16:00 [只看该作者]

用自带的“组合统计结果”为例,执行代码:

 

Dim b As New SQLGroupTableBuilder("统计表1","进货单")
b.AddTable("进货单","型号","销售单","型号")
b.Groups.AddDef("{进货单}.型号")
b.Totals.AddExp("金额","{进货单}.数量*{销售单}.售价")
b.Totals.AddDef("{进货单}.数量")
Tables("窗口1_Table1").DataSource  = b.BuildDataSource

 

之前反映的问题依旧:

1、以“进货单”为基表,添加“销售单”参与统计。既然是按“进货单”的“型号”列进行分组,那么“进货单”中的所有型号都应出现在统计结果中。事实是,在“销售单”中没有关联记录的“NB-XXX”仍然消失。这肯定是不对的。

同理,如果是按“销售单”中的型号分组,则销售单中的所有型号都应出现在统计结果中。这就类似于sql的左连接或右连接。

2、统计列有两个,一个是Exp,一个是Def,统计的结果中,按列名统计的结果仍然排在表达式列的前面。

 

以上问题在上次更新时就提出来了,莫非是忘记修改了?图片点击可在新窗口打开查看

[此贴子已经被作者于2011-6-27 23:24:07编辑过]

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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2011/6/27 18:21:00 [只看该作者]

一楼的测试代码暂不考虑一对多还是多对多的问题,因为它的统计结果是不正确的。

用这个主要是便于说明问题。

比如,NB-XXX这个型号尽管在销售单中没有对应的记录,但它也应该出现在统计结果中,金额为0


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/6/27 19:42:00 [只看该作者]

撤了···  从帮助中的SQLGroupTableBuilder看,好像就是要这样的吧。即:除了用来关联的列,其他列名在各表之间是不能重名的。否则用GroupTableBuilder+Combine来处理。

[此贴子已经被作者于2011-6-27 21:05:05编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/27 20:36:00 [只看该作者]

1、参考:

http://help.foxtable.com/topics/2330.htm

 

2、顺序问题没有办法,统计接触后,用move方法调整个别列的位置吧


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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2011/6/27 23:22:00 [只看该作者]

这次增加的连接类型参数很好使,本以为只对sqljointablebuild有效呢。呵呵

ok,问题解决!


 回到顶部