我需要找到最少與其關聯的客戶端數量的人員的ID,以便將當前新客戶端分配給該員工。COUNT選擇和本地變量存儲
我已經使用以下來建立這個工作人員的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> db事務中執行後續更新語句。
所以......任何幫助,甚至任何人可以提供補救措施,將不勝感激。
在此先感謝!
我沒有一個MSSQL服務器方便的進行測試,但不能你只要把聚合函數' COUNT(JA.judgeId)'在你的'ORDER BY'子句中(而不是將它包含在你的'SELECT'中)? – Crontab
我現在就試試,但這聽起來很可能。 –
@Crontab號碼不起作用。它只是返回-1代碼並且沒有結果/記錄 –