Seite 1 von 1
[gelöst] UPDATE mit 2 WHERE?
Verfasst: So, 09.04.2023 10:25
von hk3003
Hallo Forum,
ich habe ein UPDATE wo ich zwei Felder abhängig von einem anderen Feld ändern/nicht ändern möchte. Dabei bekomme ich folgenden Fehler:
Unexpected token: , in statement [,]
Code: Alles auswählen
UPDATE "T_Stamm2" SET "H_Kurs" = "AktKurs" WHERE "AktKurs" > "H_Kurs",
"T_Kurs" = "AktKurs" WHERE "AktKurs" < "T_Kurs" ;
lg heinz
Re: UPDATE mit 2 WHERE?
Verfasst: So, 09.04.2023 12:24
von RobertG
Hallo Heinz,
mach' da zwei getrenntes UPDATE-Befehle draus. Die Bedingung des einen Befehls hat ja nichts mit der Bedingung des anderen Befehls zu tun.
Code: Alles auswählen
UPDATE "T_Stamm2" SET "H_Kurs" = "AktKurs" WHERE "AktKurs" > "H_Kurs" ;
UPDATE "T_Stamm2" SET "T_Kurs" = "AktKurs" WHERE "AktKurs" < "T_Kurs" ;
Das hattest Du doch schon, oder? Jedenfalls kannst Du nicht für einen Teil des Updates eine Bedingungen formulieren und für den anderen Teil eine andere Bedingung.
Gruß
Robert
Re: UPDATE mit 2 WHERE?
Verfasst: So, 09.04.2023 12:27
von hk3003
Hallo Robert,
gehen solche Sachen immer nur einzeln oder ist es nur übersichtlicher?
lg heinz
Re: UPDATE mit 2 WHERE?
Verfasst: So, 09.04.2023 16:34
von RobertG
Hallo Heinz,
versuche doch Deine Konstruktion einmal zusammengefasst als Abfrage:
Code: Alles auswählen
SELECT "H_Kurs" , "AktKurs", "T_Kurs" FROM "T_Stamm2" WHERE "AktKurs" > "H_Kurs" AND "AktKurs" < "T_Kurs"
WHERE darf nur einmal erscheinen. Danach kommen sämtliche Bedingungen, die für die gesamte Anzeige gelten. Und das ist nicht nur bei der Anzeige so, sondern auch bei der Änderung von Daten.
Also ginge höchstens:
Code: Alles auswählen
UPDATE "T_Stamm2" SET "H_Kurs" = "AktKurs",
"T_Kurs" = "AktKurs"
WHERE "AktKurs" > "H_Kurs" AND "AktKurs" < "T_Kurs" ;
Dann wäre aber in jedem der gefundenen Datensätze "H-Kurs" = "T_Kurs". Und Du würdest vermutlich auch nicht alle Datensätze finden, sondern eben nur die, bei denen beide Bedingungen erfüllt sind. Ein UPDATE-Befehl arbeitet eben auch nur Zeile für Zeile die Tabelle ab - mit den entsprechenden Filterbedingungen für die anzuzeigende Zeile. Und das, was er machen soll, macht er für alle diese anzuzeigenden Zeilen.
Gruß
Robert
Re: UPDATE mit 2 WHERE?
Verfasst: So, 09.04.2023 17:12
von hk3003
Danke Robert,
es ist mir jetzt etwas klarer!
lg heinz