0

DBから、1日あたりおよびチームごとにいくつかの情報を選択する必要があります。チームごとに、1日に何個のアイテムが購入されたかを確認したいと思います。たとえば、2012-11-21に6つのアイテムを購入した場合、結果を表示したいと思います。チーム1は3つのアイテムを購入し、チーム2は2つのアイテムを購入し、最後のチームは1つのアイテムを購入しました。これを使用して、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 

そして、私のテーブル構造は次のようなものですDate, Product, Price, Team

4

2 に答える 2

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
于 2012-11-21T15:23:38.157 に答える
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;
于 2012-11-21T15:32:14.733 に答える