아래의 SELECT 문은 올바른 데이터를 반환합니다.CASE, GROUP BY 및 HAVING을 사용하는 SQL UPDATE
SELECT stu.sc, stu.sn, COUNT(*) AS Total,
CASE
WHEN COUNT(*) = 3 Then 'Letter 1'
WHEN COUNT(*) = 4 Then 'Letter 2'
WHEN COUNT(*) = 5 Then 'Letter 3'
ELSE 'SARB'
END AS Letter
FROM STU join att ON (stu.SC = att.SC and stu.SN = att.SN)
WHERE att.al in ('c','t','u')
GROUP by stu.sc, stu.sn
HAVING COUNT(*) >= 3
해당 쿼리를 기반으로 업데이트를 수행해야하며이를 파악할 수 없습니다. 필자는 필자가 필요로하는 것과 비슷한 여러 예제를 온라인에서 살펴 봤지만이 방법을 사용할 수는 없습니다. 난 내가 그룹으로 사용하고 직접 업데이트 문에서 갖는 수 없다는 것을 알아
UPDATE stu
SET stu.tru =
CASE
When COUNT(*) = 3 Then 'Letter 1'
When COUNT(*) = 4 Then 'Letter 2'
When COUNT(*) = 5 Then 'Letter 3'
ELSE 'SARB'
END
FROM stu JOIN att
on (stu.sc = att.sc and stu.sn = att.sn)
WHERE ATT.AL in ('c','t','u')
GROUP BY stu.sc, stu.sn
HAVING COUNT(*) >= 3
... 같은 것을 할 수 있어야하지만, 나는 그들이 그룹으로 선택을 사용하는 예를 본 적이 집합과 결합 전에. 나는 단지 그것을 작동하게 만들 수 없다.
도움 주셔서 감사합니다.
당신이 사용하는 SQL 서버의 버전은 무엇? 2000 년? 2005 년? 2008 년? –
아래에서 귀하의 답변을 볼 수 있지만 어쨌든 이것을 업데이트하겠습니다. SQL Server 2008을 사용하고 있습니다. 고마워요. –