首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >合并来自不同SQL服务器的两个表的值

合并来自不同SQL服务器的两个表的值
EN

Stack Overflow用户
提问于 2013-12-04 10:13:21
回答 2查看 110关注 0票数 1

我有两个(链接的) sql服务器,它们的设置基本相同,但它们的内容不同。我想要做的是获取两个表(每个服务器一个)并将它们合并,这样就没有重复的ID (例如,没有重复的fname),并且将count添加到一起。

他们看起来就像

代码语言:javascript
运行
复制
SERV1.DB1.dbo.Table:
| fname       | count |
----------------------
| 'file1.txt' | 10    |
| 'file2.txt' | 5     |
| 'file3.txt' | 35    |


SERV2.DB2.dbo.Table:
| fname       | count |
----------------------
| 'file1.txt' | 40    |
| 'file2.txt' | 150   |

我想写一个输出的select

代码语言:javascript
运行
复制
| fname       | count |
----------------------
| 'file1.txt' | 50    |
| 'file2.txt' | 155   |
| 'file3.txt' | 35    |

我不想加入工会也不想以我想要的方式合并他们。

编辑

  • 它需要是不区分大小写的,因为fname可能会根据情况而变化(读: will)。
  • fname有不同的排序(这是一个没有问题,但值得一提)
  • 我通过在每台服务器上执行类似的select来获得这两个表。我可以创建临时桌子,但如果我没有临时桌子的话,我会更喜欢。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-04 10:20:52

你可以用JOIN轻松地做这件事

代码语言:javascript
运行
复制
SELECT table1.fname fname, table1.Count + table2.count Count
FROM SERV1.DB1.dbo.Table table1
    FULL OUTER JOIN SERV2.DB2.dbo.Table table2 ON table1.fname=table2.fname

编辑:区分大小写/不敏感取决于列排序规则。

票数 2
EN

Stack Overflow用户

发布于 2013-12-04 10:44:02

根据吉安明的回答,这是我自己的建议:

代码语言:javascript
运行
复制
SELECT
     COALESCE(t1.fname,t2.fname) fname,
     COALESCE(t1.Count,0) + COALESCE(t2.count,0) Count
FROM
   SERV1.DB1.dbo.Table t1 
    FULL OUTER JOIN
   SERV2.DB2.dbo.Table t2
    ON t1.fname=t2.fname

这确保来自两个表的所有fname值都出现在结果中,甚至那些仅出现在SERV2表中的值也是如此。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20372487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档