私の会社には、プログラム、スタッフ、クライアント、およびイベントがあります。各プログラムの各スタッフに対して 2 つのランダムなクライアント イベントを監査します。
プログラムで過去 6 か月間にクライアント イベントが発生したすべてのスタッフを選択するクエリを作成しました。
SELECT TOP(2)
program_id, staff_id, client_id, event_date
FROM
events
INNER JOIN
client ON events.client_id = client.client_id
WHERE
<blah, blah> --by date range, program, client showed up at event ...
ORDER BY
NEWID() --randomizes the top 2 picked from this set
ここで、各プログラムの各スタッフ メンバーに対してそれを繰り返す必要があります。スタッフは複数のプログラムに参加できます。その場合、スタッフとプログラムの組み合わせごとに 2 つのクライアント イベントを監査します。
結果は次のようになります。
program_id staff_id client_id event_date
p1 12345 abc123 8/26/2013
xyz123 5/16/2013
p1 23456 bcd123 7/26/2013
wxy123 4/16/2013
p2 12345 cde123 9/26/2013
xyz123 3/16/2013
p3 34567 efg123 7/26/2013
uvw123 5/16/2013
(これを xls に吐き出して、プログラムごとに個別のタブを作成するとよいでしょう。)
他の人も同様の質問を投稿しています。これは、セットで考える方法の純粋な例であるため、投稿しています。そのセットを繰り返すのを手伝ってください。ありがとうございました。