Foxtable(狐表)用户栏目专家坐堂 → 多表,先进行字段匹配,能匹配上的进行连接,涉及表未匹配上的也保留,该用什么方法?


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

主题:多表,先进行字段匹配,能匹配上的进行连接,涉及表未匹配上的也保留,该用什么方法?

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
多表,先进行字段匹配,能匹配上的进行连接,涉及表未匹配上的也保留,该用什么方法?  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2020/11/4 9:45:00 [只看该作者]

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

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/4 9:48:00 [只看该作者]

select 编号,金额 from {表1} union all select 编号,金额*-1 from {表2}

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2020/11/4 12:30:00 [只看该作者]

金额*-1  或   金额*+1   是什么用法啊,网上也没查到相关的例子。

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/4 13:38:00 [只看该作者]

这个是小学数学,都还给老师了?正数乘以负一不就是负数了吗?100-20不就是等于100+负20吗。。。。。。。。。。。。。。。

 回到顶部