1 週間に新規のクライアント数と従業員のために戻ってきたクライアント数を調べる必要があります。
従業員が先週持っていたクライアントを見つけるために、次のクエリを実行します。
SELECT DISTINCT ClientIdNumber FROM Transactions
WHERE [Date] >= @startDate AND [Date] <= @endDate
AND EmployeeIdNumber = @employeeIdNumber
クライアントと従業員が以前にやり取りしたことがあるかどうかを調べるには、次のクエリを実行できます。
IF (
SELECT COUNT(*) AS n FROM Transactions
WHERE [Date] < @startDate
AND ClientIdNumber = @clientIdNumber
AND EmployeeIdNumber = @employeeIdNumber
) > 0
SELECT 1
ELSE SELECT 0
結果セットが次のようになるように、これらのクエリを 1 つに結合したいと考えています。
EmployeeIdNumber - NewClients - ReturningClients
2 つの個別のクエリを使用して、最初の結果セットをループし、2 番目の結果セットを適用する必要がありますが、これはもちろん非常に遅い (そして悪い)
最初のクエリの結果が 2 番目のクエリで必要になるため、理解できませんが、それを行うための賢い方法があると確信しています。