sql文で質問です。

フラミア
2013-07-04 11:57 1828 1
Aテーブルがありフィールドが|店舗名|性別|の2フィールドあり
店舗名ごとの男の人数、女の人数を1回のsql文で各店舗1列で取得することは可能でしょうか?

例えば
|店舗A|男|
|店舗A|男|
|店舗A|女|
|店舗B|女|
|店舗B|女|
|店舗B|女|
とあった場合

|店舗名|男人数|女人数|
|店舗A | 2 |1 |
|店舗B | 0 |3 |

というふうに取得したいです。

わかりにくくですいません。
宜しくお願いします。

コメント

2013年 07月 04日 (12:17)
こんにちは。
イノ(inno)です。

下記のようにしてみてください。


-- 一時テーブル作成
CREATE TABLE #TestTable
(
StoreName nvarchar(10)
, Sex nchar(1)
)
GO

-- データ登録
INSERT INTO #TestTable
SELECT N'店舗A', N'男' UNION ALL
SELECT N'店舗A', N'男' UNION ALL
SELECT N'店舗A', N'女' UNION ALL
SELECT N'店舗B', N'女' UNION ALL
SELECT N'店舗B', N'女' UNION ALL
SELECT N'店舗B', N'女'
GO

-- 結果
SELECT StoreName [店舗名]
, SUM(CASE WHEN Sex = N'男' THEN 1 ELSE 0 END) [男人数]
, SUM(CASE WHEN Sex = N'女' THEN 1 ELSE 0 END) [女人数]
FROM #TestTable
GROUP BY StoreName
ORDER BY StoreName