2010-05-13 39 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