sql选择每个团队每天的信息

sql选择每个团队每天的信息,sql,Sql,我需要从数据库中选择一些信息,每天和每个团队。我想看看每个团队每天购买多少物品。例如,如果在2012年11月21日购买了6件物品,我希望我的结果显示:第一组购买了3件物品,第二组购买了2件物品,最后一组购买了1件物品。我可以通过以下方式获得一个团队的信息: select count(CONVERT(date, getdate())) as Team1 from items where team = 1 group by CONVERT(date, getdate()) 但我不知道如何才能得到我

我需要从数据库中选择一些信息,每天和每个团队。我想看看每个团队每天购买多少物品。例如,如果在2012年11月21日购买了6件物品,我希望我的结果显示:第一组购买了3件物品,第二组购买了2件物品,最后一组购买了1件物品。我可以通过以下方式获得一个团队的信息:

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 

我的表结构是这样的:
日期、产品、价格、团队

您需要按照团队和日期进行分组

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

这里您需要的是
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;

如果您想得到足够的答案,您应该始终附加表结构和数据库系统。结果中有日期吗?您希望日期作为参数?是否有或将有更多的团队或只有3个团队?