以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于SQLJoinTableBuilder命令求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=11499)

--  作者:jackshen888
--  发布时间:2011/7/30 23:00:00
--  关于SQLJoinTableBuilder命令求助

我现在遇到的问题就是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
--  发布时间:2011/7/31 0:11:00
--  
不知道你的几个表的结构是怎样的。
--  作者:狐狸爸爸
--  发布时间:2011/7/31 8:01:00
--  

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

 

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

 

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

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

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

 


--  作者:jackshen888
--  发布时间: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
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2011/7/31 8:19:00
--  
我只看到你加入了入库单和销售订单两个表,没有看到你加入销售订单明细表。
--  作者:jackshen888
--  发布时间:2011/7/31 9:36:00
--  
其实销售订单里本来就有一列表达式列,取值是子表销售订单明细中的数量列,只是销售订单和入库单两个表合并后,不能提取销售订单中的表达式列???
--  作者:狐狸爸爸
--  发布时间:2011/7/31 9:58:00
--  

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

 

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

 

看看这里的示例七:

 

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

 

 


--  作者:jackshen888
--  发布时间:2011/7/31 10:07:00
--  
这样的话是不是要合并三个表?