2010-12-14 130 views
2

我有两个疑问喜欢的结果:查询查询1添加列值在SQL Server查询

ID Value 
1 4 
2 0 
3 6 
4 9 

结果的

结果2

ID Value 
1 6 
2 4 
3 0 
4 1 

我想增加值列“值”并显示最终结果:

这两个查询的结果

ID Value 
1 10 
2 4 
3 6 
4 10 

PLZ指导我...

回答

3
select id, sum(value) as value 
from (
    select id, value from query1 
    uninon all 
    select id, value from query2 
) x 
group by id 
0

尝试使用JOIN:

SELECT 
    T1.ID, 
    T1.Value + T2.Value AS Value 
FROM (...query1...) AS T1 
JOIN (...query2...) AS T2 
ON T1.Id = T2.Id 

您可能还需要考虑是否有存在于一个结果,但不是在一个ID应发生什么其他。当前查询将从结果中省略。您可能需要调查OUTER JOIN作为替代方案。

+2

+1:我很高兴你删除的答案。感觉我们的慷慨有时被滥用。 – 2010-12-14 09:49:47

+0

我编辑了我的问题chk it – Xulfee 2010-12-14 10:46:51

+0

@Ardman:“慷慨[原文如此]”?你怎么敢?!我们大多数人都在这里锻炼自我! ;) – onedaywhen 2010-12-14 11:34:06

0

不是特别好,但很容易理解的方法是:

SELECT ID,SUM(Value) FROM 
(
(SELECT IDColumn AS ID,ValueColumn AS Value FROM TableA) t1 
OUTER JOIN 
(SELECT IDColumn AS ID,ValueColumn AS Value FROM TableB) t2 
) a GROUP BY a.ID 

它的好处

一)我不知道你的实际的表结构,所以你应该能够工作如何从原始查询得到两个“SELECT的工作 b)若ID没有出现在两个表中,这很好