2012-11-21 69 views
0

我需要從DB,每天和每個團隊中選擇一些信息。我想看看每個團隊每天都會購買多少物品。例如,如果在2012年11月21日購買了6件物品,我希望我的結果顯示:團隊1購買了3件物品,團隊2 - 2物品和最後一件物品1件物品。我可以得到的信息爲一個團隊,使用此:sql每天選擇每個團隊的信息

select count(CONVERT(date, getdate())) as Team1 
from items 
where team = 1 
group by CONVERT(date, getdate()) 

但我不知道我怎麼能得到的信息,我需要的,所有球隊。

編輯

我需要的結果是這樣的:

Date  |Team1 | Team2 | Team3 
2012-11-21|2 items | 3 items | 0 items 

而我的表結構是這樣的:Date, Product, Price, Team

+0

你應該總是附加表結構和數據庫系統,如果你想得到足夠的答案 – sufleR

+0

哪裏是你的結果中的日期?你想要日期作爲參數? – sufleR

+1

什麼是您的DBMS? – Kermit

回答

0

你所需要的是什麼,是PIVOT你的表像這樣:

SELECT 
    Date, 
    SUM(CASE WHEN team = 'team1' THEN 1 ELSE 0 END) 'team1', 
    SUM(CASE WHEN team = 'team2' THEN 1 ELSE 0 END) 'team2', 
    SUM(CASE WHEN team = 'team3' THEN 1 ELSE 0 END) 'team3' 
FROM Tablename 
GROUP BY date; 
0

您需要GROUP BY團隊和日期。

SELECT datecol, team, COUNT(*) 
FROM items 
GROUP BY datecol, team 

基於更新的要求,不知道你的DBMS是什麼:

SELECT a.datecol AS 'Date', 
    (SELECT COUNT(*) FROM items WHERE datecol = a.datecol AND team = '1') AS 'Team1', 
    (SELECT COUNT(*) FROM items WHERE datecol = a.datecol AND team = '2') AS 'Team2', 
    (SELECT COUNT(*) FROM items WHERE datecol = a.datecol AND team = '3') AS 'Team3' 
FROM items a 
GROUP BY a.datecol