SQL Update auf die Summe der verbundenen Werte
Ich bin versucht, zu aktualisieren ein Feld in der Datenbank die Summe seiner trat Werte:
UPDATE P
SET extrasPrice = SUM(E.price)
FROM dbo.BookingPitchExtras AS E
INNER JOIN dbo.BookingPitches AS P ON E.pitchID = P.ID
AND P.bookingID = 1
WHERE E.[required] = 1
Wenn ich diesen starte, bekomme ich die folgende Fehlermeldung:
"An aggregate may not appear in the set list of an UPDATE statement."
Irgendwelche Ideen?
InformationsquelleAutor der Frage markvpc | 2010-03-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie wäre es damit:
InformationsquelleAutor der Antwort JonH
Eine Alternative zu den oben genannten Lösungen ist die Verwendung von Aliasnamen für Tabellen:
InformationsquelleAutor der Antwort Muhammad Omar ElShourbagy
Dies ist eine gültige Fehler. Sehen diese. Folgende (und andere, die unten vorgeschlagen) sind die Möglichkeiten, dies zu erreichen:-
InformationsquelleAutor der Antwort Ashish Gupta
Ich lief in das gleiche Problem und fand, dass ich konnte es lösen mit einer Common Table Expression (verfügbar in SQL 2005 oder höher):
InformationsquelleAutor der Antwort C-Pound Guru
Verwenden Sie eine sub-Abfrage, die ähnlich der unten.
InformationsquelleAutor der Antwort cmsjr
Müssen Sie so etwas wie dieses :
InformationsquelleAutor der Antwort MartW
Mit postgres, musste ich passen Sie die Lösung mit diesem zu arbeiten für mich:
InformationsquelleAutor der Antwort Yoric