2010-05-13 38 views
0

我想要一個查詢,將顯示缺失數據的默認值列的總和。例如,假設我有一個表,如下所示:tsql總和數據,幷包括缺省數據的默認值

type_lookup:

id name 
----------- 
1 self 
2 manager 
3 peer 

和表格如下

數據:

id type_lookup_id value 
-------------------------- 
1 1    1 
2 1    4 
3 2    9 
4 2    1 
5 2    9 
6 1    5 
7 2    6 
8 1    2 
9 1    1 

運行查詢,我想結果後設置如下:

type_lookup_id value 
---------------------- 
1    13 
2    25 
3    0 

我希望type_lookup表中的所有行都包含在結果集中 - 即使它們不出現在數據表中。

回答

0

這是一個有點難以閱讀您的數據佈局,但類似下面應該做的伎倆:

SELECT tl.type_lookup_id, tl.name, sum(da.type_lookup_id) how_much 
from type_lookup tl 
    left outer join data da 
    on da.type_lookup_id = tl.type_lookup_id 
group by tl.type_lookup_id, tl.name 
order by tl.type_lookup_id 

[編輯] ......隨後通過改變計數編輯()來概括()。

+0

count()或sum(),我真的不知道這裏需要哪個。 – 2010-05-13 15:52:34

+0

如果你看看他的結果集,對於查找ID#1,肯定是sum() - 1 + 4 + 5 + 2 + 1 = 13。 – patmortech 2010-05-13 16:19:04

+0

是的,他編輯的問題更清晰。我已經相應地更新了我的答案。 – 2010-05-13 16:56:24