以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  多表,先进行字段匹配,能匹配上的进行连接,涉及表未匹配上的也保留,该用什么方法?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=157963)

--  作者:guosheng
--  发布时间:2020/11/3 18:04:00
--  多表,先进行字段匹配,能匹配上的进行连接,涉及表未匹配上的也保留,该用什么方法?
表1 编号 金额 101 10 102 20 表2 编号 金额 102 10 104 40 并表 编号 金额 101 10 102 20加10 104 40
图片点击可在新窗口打开查看此主题相关图片如下:4b77a134-29cf-4120-ae44-de9180ed626d.jpeg
图片点击可在新窗口打开查看
[此贴子已经被作者于2020/11/3 18:09:36编辑过]

--  作者:有点蓝
--  发布时间:2020/11/3 20:22:00
--  
参考:http://www.foxtable.com/webhelp/topics/1626.htm

Dim b As New SQLGroupTableBuilder("统计表1","表1")
b.ConnectionName = 
"Sale"
b.AddTable(
"表1","编号","表2","编号"\'添加统计表
b.Groups.AddDef(
"{
表1}.编号"\'根据产品名称分组
b.Totals.AddDef("金额"\'对数量进行统计
b
.Build \'生成统计表
Maintable = Tables(
"统计表1"
\'打开生成的统计表

--  作者:guosheng
--  发布时间:2020/11/4 9:15:00
--  
表1 
编号 金额 
101 10 
102 20 

表2 
编号 金额 
102 10 
104 40 

根据例子代码实现的连接结果是:
并表(例子结果)---我估计是内连接吧
编号  表1.金额    表2.金额
102      20            10

并表 (我想要的,不是左连接 和 右连接。能连接的连接,不能连接的也显示。应该是左连接  和 右连接的 并集
编号   表1.金额      表2.金额
101       10 
102        20              10 
104        40

想要的统计结果:

编号   金额     
101       10 
102     20+10       
104        40

要是表连接没问题的话,
Dim b As New SQLGroupTableBuilder("统计表1","表1")
b.C
b.AddTable("表1","序号","表2","序号") \'添加统计表    
b.Groups.AddDef("{表1}.序号") \'根据产品名称分组   \'如何取到所有的序号列
b.Totals.Addexp("{表1}.金额+{表2}.金额") \'对数量进行统计    \'这么写是有语法错误的
b.Build \'生成统计表
MainTable = Tables("统计表1") \'打开生成的统计表
[此贴子已经被作者于2020/11/4 9:28:59编辑过]

--  作者:有点蓝
--  发布时间:2020/11/4 9:29:00
--  
Dim b As New GroupTableBuilder("统计表1","select 编号,金额 from {表1} union all select 编号,金额 from {表2} ")
b.Groups.AddDef("编号") \'根据产品名称分组
b.Totals.AddDef("金额") \'对数量进行统计
b.Build \'生成统计表
MainTable = Tables("统计表1") \'打开生成的统计表

--  作者:guosheng
--  发布时间:2020/11/4 9:45:00
--  
如果某些列做 减法或其他混合运算 时该怎么改啊?
编号   金额     
101       10 
102     20-10       
104        40
[此贴子已经被作者于2020/11/4 9:45:54编辑过]

--  作者:有点蓝
--  发布时间:2020/11/4 9:48:00
--  
select 编号,金额 from {表1} union all select 编号,金额*-1 from {表2}
--  作者:guosheng
--  发布时间:2020/11/4 11:34:00
--  
如果有两列(也可能多列混合运算)数值列,md和mc的话,如何再加一列,让md-mc 
Dim b As New GroupTableBuilder("统计表1","s ele ct 编号,md ,mc, *** fro m {表1} union all s elect 编号,md*+1,mc*+1,***  fro m {表2} ")

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20201104113417.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2020/11/4 11:34:36编辑过]

--  作者:有点蓝
--  发布时间:2020/11/4 11:50:00
--  
Dim b As New sqlGroupTableBuilder("统计表1","select 编号,md ,mc from {表1} union all select 编号,md ,mc from {表2} ")
b.Groups.AddDef("编号")
b.Totals.AddDef("md")
b.Totals.AddDef("mc")
b.Totals.AddExp("差","md-mc")
b.Build \'生成统计表

--  作者:guosheng
--  发布时间:2020/11/4 12:30:00
--  
金额*-1  或   金额*+1   是什么用法啊,网上也没查到相关的例子。

--  作者:有点蓝
--  发布时间:2020/11/4 13:38:00
--  
这个是小学数学,都还给老师了?正数乘以负一不就是负数了吗?100-20不就是等于100+负20吗。。。。。。。。。。。。。。。