-
SQL - Update mit Subselects
Hallo zusammen,
möchte eine Datei in Abhängigkeit einer anderen Datei nur dann updaten, wenn dort der enstprechende Satz gefunden wurde:
update v#vsta00
set vvswg0 = case when (select budget
from budms09 where kdnr = vskdnr AND 'BUD99' = vstnr) <> 0 then
(select budget
from budms09 where kdnr = vskdnr AND 'BUD99' = vstnr) else vvswg0 end,
...
where exists (Select budget from budms09 where vskdnr = kdnr)
;;
Ursprünglich dachte ich, dass ich mir die Case-Anweisung sparen kann, weil ich ja in den Where-Bedingungen mit exists auf die Existenz der Subselect-Sätze abfrage. Dies führt jedoch stets zu der Meldung, dass keine NULL-Werte in das Feld vvswg0 geschrieben werden dürfen.
Meine Case-Anweisung ist allerdings auch nicht ganz richtig, da das Feld Budget durchaus den Wert 0 haben darf, welcher hierüber jedoch auch abgefangen wird.
Mit NOT NULL anstelle von <> 0 hab ich es schon versucht - Syntaxfehler.
Wer weiß, wie es funktioniert?
-- Tobias
-
Wenn auch mit 0 upgedatet werden darf, wenn keine Daten vorhanden sind dann gehts mit:
update v#vsta00
set vvswg0 = coalesce(select budget
from budms09 where kdnr = vskdnr AND 'BUD99' = vstnr), 0)
Ansonsten fehlt dir noch die 2. Bedingung:
update v#vsta00
set vvswg0 = (select budget
from budms09 where kdnr = vskdnr AND 'BUD99' = vstnr)
where exists (Select budget from budms09 where vskdnr = kdnr AND 'BUD99' = vstnr)
-
Hallo Fuerchau,
vielen Dank für die prompte Antwort.
Es lag an der 2. Bedingung im exists. Ich hab's eben selbst gemerkt, aber bevor ich meine Frage löschen konnte, bist du schon draufgekommen.
Coalesce passt hier leider nicht, denn wenn nichts gefunden wurde, dann soll der alte Wert in vvswg0 bestehen bleiben.
-- Tobias
-
Naja, das geht ja auch:
update v#vsta00
set vvswg0 = coalesce(select budget
from budms09 where kdnr = vskdnr AND 'BUD99' = vstnr), vvswg0)
Mit dem exists reduzierst du nur die Anzahl Updates, wass ggf. schneller wird.
Similar Threads
-
By mk in forum NEWSboard Programmierung
Antworten: 13
Letzter Beitrag: 13-07-12, 08:53
-
By steven_r in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 25-09-06, 08:22
-
By wuwu in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 18-07-06, 15:31
-
By desti82 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 04-07-06, 15:25
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks