Ich habe die folgende UPDATE-AnweisungUPDATE mit Aggregat SELECT - SET Spalten 0, wenn SELECT ist leer
UPDATE stuff
SET stuff.total = t.total
FROM (
SELECT SUM(price) FROM things WHERE stuff_id = ? GROUP BY stuff_id
) t
WHERE stuff.id = ?
Dies funktioniert gut, wenn es tatsächlich Reihen in things
, aber wenn kein UPDATE ausgeführt wird (was ich denke, macht Sinn). Was wäre ein eleganter Weg, stuff.total
zu 0
in diesem Fall zu setzen? Ich würde es gerne in einer Abfrage machen. Ich habe schon versucht SET stuff.total = coalesce(t.total, 0)
, aber es hatte keine Wirkung.
Ich bin verwirrt. Ihre Aussage ist syntaktisch falsch. 'ERROR: Syntaxfehler bei oder in der Nähe von" WHERE "' Auch scheint 'GROUP BY' redundant zu sein. Sind Sie sicher, dass dies eine Postgresql-Frage ist? – fl0cke
ja @ fl0cke hat recht. Können Sie bitte Ihre genaue Anfrage posten? Zum Beispiel in Ihrer Unterabfrage, die WHERE erscheint nach GROUP BY, die nicht sein kann – e4c5
danke @ fl0cke, bei dem Versuch, Domain-Besonderheiten zu redigieren Ich tauschte versehentlich die Anweisungen. Das ist jetzt behoben. –