关于SQL运用的高级问题,求助牛人

来源:百度知道 编辑:UC知道 时间:2024/06/17 06:23:39
表A 表B 表C
id name int id name int id name int
1001.1 中国银行 100 1001.1 中国银行 200 1001.1 农业银行 200
1001.2 农业银行 200 1001.2 农业银行 100 1001.2 工商银行 200
1002.1 中国银行 100 1002.1 中国银行 100 1002.1 中国银行 100

表D
id name int
1001.1 中国银行 500 1001里的“中国银行”全加起来
1001.2 农业银行 500 1001里的“农业银行”全加起来
1001.3 工商银行 200 1001里的“工商银行”全加起来
1002.1 中国银行 300 1002里的“中国银行”全加起来

查询ABC表, 做成D表. 表ABC在SQL数据库不同的库中.表D是要求的结果
对不起 少加条件了: 1001.1的中国银行和1002.1的中国银行不允许相加.

大侠们给出详细语句,我在这里谢谢了

如果在同一个服务器上,而且你的用户名有足够的权限访问其它库.且表属于DBO
做一个视图 D 内容为
select * from DatabaseName[a].dbo.TableName[a]
union all
select * from DatabaseName[b].dbo.TableName[b]
.............

如果不在同一个服务器上,要在D服务器上添加链接服务器,并在其它服务器上放行,授权/
做一个视图D内容为
select * from 192.168.0.1.DatabaseName[a].dbo.TableName[a]
union all
select * from 192.168.0.2.DatabaseName[b].dbo.TableName[b]
.............

如果几个库在同一个数据库服务器并在一个实例中的话,只要表名按照全名写就可以了,如:
[数据库名].[用户名].[表名]

如果几个库不在同一个服务器或实例中,可以建立链接服务器后按照全名书写,如:
[链接服务器名].[数据库名].[用户名].[表名]

还要做个sum([int])操作

如果 不在同库中,sql语句没办法。
只能写程序了。

a b c 不在相同的数据库?