2011-09-05 65 views
4

考慮以下表格:獲取項目及其值的數量在一列

Table Items: 

ItemID ItemName 
------------------ 
1   N1 
2   N2 
3   N4 
4   N5 

和MYTBL表我有一個項目ID,可能是這樣的:

ItemId 
---- 
1 
1 
3 
4 
4 
4 

我想寫一個查詢返回此結果:

ItemId  count 
------------------- 
    1   2 
    2   0 
    3   1 
    4   3 

如何在沒有光標的情況下做到這一點?

回答

6

您可以從ItemsLEFT JOINMyTbl中選擇常見的ItemID中的每一項,對匹配進行計數;

select 
    Items.itemId, 
    count(MyTbl.itemId) as count 
from Items 
    left join MyTbl on (MyTbl.ItemID = Items.ItemID) 
group by Items.itemId 
order by Items.itemId 
2

試試這個:

declare @Items as table(ItemID int,ItemName varchar(20)) 
declare @MyTbl as table(ItemId int) 

insert into @Items values(1, 'N1') 
insert into @Items values(2, 'N2') 
insert into @Items values(3, 'N4') 
insert into @Items values(4, 'N5') 

insert into @MyTbl values(1) 
insert into @MyTbl values(1) 
insert into @MyTbl values(3) 
insert into @MyTbl values(4) 
insert into @MyTbl values(4) 
insert into @MyTbl values(4) 

select I.ItemID, COUNT(M.ItemId) as [COUNT] from @Items I left outer join @MyTbl M on I.ItemID = M.ItemId 
    group by I.ItemID 
相關問題