Der SELECT-Befehl unten gibt die richtigen Daten zurück.
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
Ich muss ein UPDATE basierend auf dieser Abfrage durchführen und kann einfach nicht herausfinden, wie es funktioniert. Ich habe mir mehrere Online-Beispiele angesehen, die ähnlich sind wie das, was ich brauche, aber ich kriege es einfach nicht zum Laufen. Ich muss in der Lage sein, so etwas zu tun...
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
Ich weiß, dass ich Group By und Having nicht direkt in einer Update-Anweisung verwenden kann, aber ich habe Beispiele gesehen, wo sie ein Select mit Group By vor dem Set und Join verwenden. Ich kann es einfach nicht zum Laufen bringen.
Vielen Dank für jede Hilfe.
0 Stimmen
Welche Version von SQL-Server verwenden Sie? 2000? 2005? 2008?
0 Stimmen
Ich sehe deine Antwort unten, aber ich werde dies trotzdem aktualisieren. Ich verwende SQL Server 2008. Danke.