各テリトリー (TERR) には複数のセールスマン (SALM) がいる場合がありますが、各セールスマンは 1 つのテリトリーしか持つことができません。
例:
Territory Salesman Sales$ Period
1 100 999 1
1 100 999 2
1 200 999 1
1 200 999 2
2 300 999 1
2 300 999 2
3 400 999 1
3 400 999 2
できれば単一の SQL ステートメントを使用して、集計テーブルを作成したいと思います-
- 領土を示し、
- この地域のセールスマンの数 (** 明確化: ** これは、この地域で売上を上げた一意のセールスマン コードの合計です) および
- 同じファイルにセールスマン番号をリストします。
例:
Territory # of Salesmen Salesman
--------- ------------- --------
1 2 100
1 2 200
2 1 300
3 1 400
SQL:
// First I get a list of territories and number of salesman in each territory
With tmpFile as (Select TERR, SALM, count(*)
FROM FILE
GROUP BY TERR, SALM
ORDER BY TERR, SALM
)
SELECT tmpFile.TERR, count(*) FROM tmpFile GROUP BY
tmpFile.TERR ORDER BY tmpFile.TERR
// Next step is to get a list of all salesmen in a territory
Select TERR, SALM
FROM FILE
GROUP BY TERR, SALM
ORDER BY TERR, SALM
)
// 最後のステップは、上記の 2 つのステップを結合することです。可能であれば、3 つのステップすべてを 1 つのステートメントにまとめたいと思います。これを行うためのより効果的な方法はありますか。IBM db/2 SQL を使用しています。