SELECT * FROM dbo.Sample ORDER BY Site
出力:
Site Data
1 Cat
1 Mule
1 Pig
2 Giraffe
2 Dog
2 Horse
2 Mule
4 Cat
8 Dog
8 Pig
8 Mule
8 Bull
9 Bull
9 Giraffe
9 Moose
サイト別に並べ替えられたデータを表示したいが、以前のサイトにあった行を除外します。サイト 1 のすべてのアイテムを表示する サイト 1 にまだ表示されていないサイト 2 のすべてのアイテムなど。
したがって、結果は次のようになります。
Site Data
---- ----
1 Cat
1 Mule
1 Pig
2 Dog
2 Giraffe
2 Horse
9 Moose
最初のリストは、いくつかの結合を含むクエリから作成されます。
実際の例は次のとおりです。
SELECT * FROM dbo.Sample WHERE Site = 1
UNION
SELECT * FROM dbo.Sample WHERE Site = 2
AND Data NOT IN (SELECT Data FROM dbo.Sample WHERE Site < 2)
UNION
SELECT * FROM dbo.Sample WHERE Site = 8
AND Data NOT IN (SELECT Data FROM dbo.Sample WHERE Site < 8)
UNION
SELECT * FROM dbo.Sample WHERE Site = 9
AND Data NOT IN (SELECT Data FROM dbo.Sample WHERE Site < 9)
ORDER BY Site
サイトのリストもクエリから取得されます。
SiteList から個別のサイトを選択
1
2
4
8
9
確かにこれを行うための簡単で効率的な方法があるはずですか?