2014-01-22 49 views
1

根据条件自动加入表如果有人能够帮助我处理我的查询,我将不胜感激。 我有一个包含CurrenciesAmounts每个货币的表格。 我的第一个查询是:根据条件t-sql

select Currency, SUM(Amount) amnt from [MyTable] 
where CODE in(410, 420) 
group by Currency 

所以,我得到:

Currency | amnt 
USD  | 15 

我想从我的表显示所有可用的货币,并用这个结果来加入他们的行列(金额为这些货币必须为空)

Currency | amnt 
USD  | 15 
EUR  | 
AED  | 

我通过查询获取所有货币列表:

select currency from [MyTable] group by currency 

那么,我怎样才能加入这两个查询?

在此先感谢!

回答

1

试试这个:

SELECT a.Currency, SUM(CASE WHEN a.CODE IN (410, 420) THEN a.Amount ELSE 0 END) amnt 
FROM MyTable a 
GROUP BY a.Currency 

OR

SELECT A.Currency, SUM(B.Amount) amnt 
FROM (SELECT DISTINCT Currency FROM MyTable) A 
LEFT JOIN MyTable B ON A.Currency = B.Currency AND B.CODE IN (410, 420) 
GROUP BY A.Currency 

OR

SELECT A.Currency, SUM(B.Amount) amnt 
FROM (SELECT Currency FROM MyTable GROUP BY Currency) A 
LEFT JOIN MyTable B ON A.Currency = B.Currency AND B.CODE IN (410, 420) 
GROUP BY A.Currency 
+0

完美,谢谢! –

+0

@GyuzalRakhmayeva最受欢迎的... –