MS SQLでサブクエリの使用方法でお教え下さい。

ミレシヤン
2013-08-22 12:46 1893 1
下記のようなテーブルがあるとします。

営業員毎の購入された顧客数を出力するSQLを教えて下さい。
顧客数はデータ数ではなく同じ顧客が複数購入しても一とします。

テーブル名:商品売上履歴
伝票番号、顧客コード、営業員コード
0001、 ASAK001、 TANAKA
0002、 YAMA002、 SUZUKI
0003、 YUZA001、 ATANA
0004、 ASAK001、 TANAKA

実行後、こんな感じで出力したいのですが、よろしくお願いします。

営業員コード、 販売顧客数
TANAKA、 21
SUZUKI、 31
WATANA、 21

コメント

2013年 08月 22日 (13:58)
こんにちは。
イノ(inno)です。

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

-- #### 一時テーブル作成
CREATE TABLE #TempData
(
Sn char(4)
, GuestUserCode varchar(10)
, SalesUserCode varchar(10)
)
GO

-- #### データ入力 --テストですので、12件のみ登録。
INSERT INTO #TempData
SELECT '0001', 'ASAK001', 'TANAKA' UNION ALL
SELECT '0002', 'ASAK001', 'TANAKA' UNION ALL
SELECT '0003', 'YAMA002', 'TANAKA' UNION ALL
SELECT '0004', 'YAMA002', 'SUZUKI' UNION ALL
SELECT '0005', 'YAMA002', 'SUZUKI' UNION ALL
SELECT '0006', 'YUZA001', 'ATANA' UNION ALL
SELECT '0007', 'YUZA002', 'ATANA' UNION ALL
SELECT '0008', 'YUZA003', 'ATANA'

-- #### 結果
SELECT SalesUserCode [営業員コード], COUNT(DISTINCT GuestUserCode) [販売顧客数]
FROM #TempData
GROUP BY SalesUserCode

-- #### 結果結果
営業員コード 販売顧客数
ATANA 3
SUZUKI 1
TANAKA 2