Foxtable(狐表)用户栏目专家坐堂 → 关于SQLJoinTableBuilder命令求助


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

主题:关于SQLJoinTableBuilder命令求助

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


加好友 发短信
等级:婴狐 帖子:79 积分:850 威望:0 精华:0 注册:2011/5/21 20:19:00
关于SQLJoinTableBuilder命令求助  发帖心情 Post By:2011/7/30 23:00:00 [只看该作者]

我现在遇到的问题就是SQLJoinTableBuilder这个命令中一个ADDEXP部分..编写代码如下

 

 

Dim jb As New SQLJoinTableBuilder("查询表1","入库单")
jb.AddTable("入库单","订单号","销售订单","订单号")
jb.AddCols("{销售订单}.*")
jb.addexp("订单数量",Sum(Child(sales).数量))
jb.build
MainTable = Tables("查询表1")

 

代码中的红分部分我有点头痛,有没有高人想办法........我的目的是这样的,,,增加一列表达式的列"订单数量"........取值是来自关联表,,,子表中的和.......

 


此主题相关图片如下:w.jpg
按此在新窗口浏览图片
[此贴子已经被作者于2011-7-31 7:29:15编辑过]

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


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

不知道你的几个表的结构是怎样的。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/31 8:01:00 [只看该作者]

SQLJoinTableBuilder不能如此使用聚合函数。

 

如果两个表只有一个表有数量列,直接:

 

jb.addexp("订单数量", "Sum(数量)")

如果两个表都有数量列:
 
jb.addexp("订单数量", "Sum({销售订单}.数量)")
 
参考下面的这一节中如何处理同名列的内容:

http://www.foxtable.com/help/topics/2314.htm

 


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


加好友 发短信
等级:婴狐 帖子:79 积分:850 威望:0 精华:0 注册:2011/5/21 20:19:00
  发帖心情 Post By:2011/7/31 8:17:00 [只看该作者]

我写了这段代码后,提示错误....

 

Dim jb As New SQLJoinTableBuilder("查询表1","入库单")
jb.AddTable("入库单","订单号","销售订单","订单号")
jb.AddCols("{销售订单}.*")
jb.addexp("订单数量", "Sum({销售订单明细}.数量)")
jb.build
MainTable = Tables("查询表1")

 

 

问题还是出在红色部分

 


图片点击可在新窗口打开查看此主题相关图片如下:f3.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/31 8:19:00 [只看该作者]

我只看到你加入了入库单和销售订单两个表,没有看到你加入销售订单明细表。

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


加好友 发短信
等级:婴狐 帖子:79 积分:850 威望:0 精华:0 注册:2011/5/21 20:19:00
  发帖心情 Post By:2011/7/31 9:36:00 [只看该作者]

其实销售订单里本来就有一列表达式列,取值是子表销售订单明细中的数量列,只是销售订单和入库单两个表合并后,不能提取销售订单中的表达式列???

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/31 9:58:00 [只看该作者]

SQLJoinTableBuilder不能使用表达式列,但可以使用表达式。

 

你必须按照常规的方式将所有的表加入,然后添加分组列和统计列。

 

看看这里的示例七:

 

http://www.foxtable.net/help/topics/2314.htm

 

 


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


加好友 发短信
等级:婴狐 帖子:79 积分:850 威望:0 精华:0 注册:2011/5/21 20:19:00
  发帖心情 Post By:2011/7/31 10:07:00 [只看该作者]

这样的话是不是要合并三个表?

 回到顶部