現在の新しいクライアントがこのスタッフメンバーに割り当てられるように、関連付けられているクライアントの数が最も少ない人のIDを見つける必要があります。
私は次のようにこのスタッフのIDを確立するために以下を使用しました。
SELECT TOP(1) JA.judgeID, COUNT(JA.judgeId) AS COUNT
FROM recJudgeAssignment AS JA
LEFT JOIN recEntrantStatus AS ES
ON JA.bandId = ES.entrantId
GROUP BY JA.judgeId, ES.roundId
HAVING ES.roundId = @round
ORDER BY COUNT
しかし、次のステートメントで使用するローカル変数としてこれをキャッチする必要があります。
UPDATE recJudgeAssignment
SET judgeId = @judge
WHERE roundId = @round
AND bandId = @entrantId
最初の選択でjudgeIdをキャッチするにはどうすればよいですか?通常、私は次のようなことをします。
SELECT @judge =(SELECT TOP(1) JA.judgeID, COUNT(JA.judgeId) AS COUNT
FROM recJudgeAssignment AS JA
LEFT JOIN recEntrantStatus AS ES
ON JA.bandId = ES.entrantId
GROUP BY JA.judgeId, ES.roundId
HAVING ES.roundId = @round
ORDER BY COUNT)
selectがjudgeIdとCOUNTを返すため、これはもちろん機能しません。最初の選択の結果をWebページに送り返してから、別のweb>dbトランザクションで後続の更新ステートメントを実行する必要はありません。
だから...誰もが提供できる助けや救済さえも、大いにありがたいです。
前もって感謝します!