-
SQL Update aufgrund Werte einer 2. Datei
Hallo, hätte da wieder mal eine Frage zu SQL an die Community, wobei ich mir nicht sicher bin ob dies so schon mal gestellt wurde. Ich konnte jedenfalls nichts dazu finden.
Hier also die Anforderung: Ich möchte in der Datei LGVDATEN/P1A im Feld P1ALIN ein „A“ bei allen Dienstnehmern einsetzen, die in der Datei ZEITDTA/P1A im Feld P1INS1 der Wert „ALL-IN“ aufweisen.
Ein eindeutiger Schlüssel kann über die Felder Firmennummer (P1FINR) und Personalnummer (P1PENR) hergestellt werden.
Könnte die Lösung so aussehen?:
Code:
Update LGVDATEN\P1 A SET A.P1ALIN = „A“
WHERE A.P1FINR CONCAT A.P1PENR in(Select B.P1FINR CONCAT B.P1PENR from ZEITDTA/P1A B where B.P1INS1 = „ALL-IN“)
-
Ja, du solltest besser
where exists (select * from ... where ...)
verwenden, da du hier die Schlüssel gezielt angeben kannst.
-
Hallo,
danke für die Info, aber wie müsste das Statement dann genau lauten?
Sorry für die Frage, aber mit "where exists" habe ich noch nie gearbeitet.
Sieht das dann vielleicht so aus?:
Code:
Update LGVDATEN\P1 A
SET A.P1ALIN = „A“ WHERE EXISTS(Select * from ZEITDTA/P1A B
where B.P1INS1 = „ALL-IN“ AND A.P1PENR = B.P1PENR AND A.P1FINR = B.P1FINR)
-
Da hast du voll ins schwarze getroffen .
-
-
 Zitat von Fuerchau
Da hast du voll ins schwarze getroffen  .
Wow, danke Dir für Deine wie immer schnelle und konkrete Hilfe.
-
So, jetzt habe ich doch noch ein Problem aufgerissen:
Um dies zu testen wollte ich es nur bei meiner Personalnummer
ausprobieren, bekomme aber immer di efolgende Fehlermeldung:
"Spalte A nicht in angegebenen Tabellen."
Kann mir bitte jemand sagen was ich da falsch mache???
Hier nochmal das Statement:
Code:
Update LGVDATEN/P1A A SET A.P1ALIN = "A"
WHERE EXISTS
(Select * from ZEITDTA/P1A B
where B.P1INS1 = "ALL-IN" AND A.P1FINR = B.P1FINR
AND A.P1PENR = B.P1PENR)
AND A.P1PENR = 12345
müsste der Code nicht wie folgt lauten ?:
Code:
Update LGVDATEN/P1A A SET A.P1ALIN = 'A'
WHERE EXISTS
(Select * from ZEITDTA/P1A B
where B.P1INS1 = 'ALL-IN' AND A.P1FINR = B.P1FINR
AND A.P1PENR = B.P1PENR)
AND A.P1PENR = 12345
Last edited by FNeurieser; 16-01-12 at 13:13.
Grund: eventuell selbst darauf gekommen?
-
So genau habe ich mir deinen SQL nicht angesehen.
Aber du hast Recht:
- Textkonstanten in einfache Hochkomma
- Feldnamen in doppelte Hochkomme, wenn sie nicht Namenskonform sind (z.B. "Auftrags.Nr.")
-
Danke Dir nochmals recht herzlich für Deine Unterstützung.
LG
Franz-Georg
-
 Zitat von Fuerchau
So genau habe ich mir deinen SQL nicht angesehen.
Aber du hast Recht:
- Textkonstanten in einfache Hochkomma
- Feldnamen in doppelte Hochkomme, wenn sie nicht Namenskonform sind (z.B. "Auftrags.Nr.")
Man solle auch Feldnamen in Hochkomma setzen, die z.B. USER oder so heisen.
Mir es mal passiert, das ich im SQL aus einer Datei alle meine Sätze löschen wollte (Delete from MyFile where USER = 'ICH'). Am Ende waren alle Sätze aus der Datei raus, da er sich im SQL bei USER auf die Sitzung bezogen hat..
Gruß
Ronald
-
 Zitat von malzusrex
Man solle auch Feldnamen in Hochkomma setzen, die z.B. USER oder so heisen.
Mir es mal passiert, das ich im SQL aus einer Datei alle meine Sätze löschen wollte (Delete from MyFile where USER = 'ICH'). Am Ende waren alle Sätze aus der Datei raus, da er sich im SQL bei USER auf die Sitzung bezogen hat..
Gruß
Ronald
Spalten-Namen, die reservierten Worten (z.B. USER, YEAR) entsprechen, sollten/müssen IMMER in " (Gänsefüßchen) angegeben werden.
Dabei muss berücksichtigt werden, dass die Angabe in Großbuchstaben erfolgen muss. Durch das Einbetten in Hochkommata können Spalten oder Correlation-Namen, die "eigentlich" nicht erlaubt sind, verwendet werden (z.B. "Stunden/Tag")
Birgitta
-
Aha,
danke für die Infos. Zwar hab ich bis jetzt das in dieser Form noch nicht benötigt, aber gut zu wissen!
Similar Threads
-
By mk in forum NEWSboard Programmierung
Antworten: 13
Letzter Beitrag: 13-07-12, 08:53
-
By ILEMax in forum IBM i Hauptforum
Antworten: 16
Letzter Beitrag: 24-01-07, 09:04
-
By moskito in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 30-08-06, 17:30
-
By wuwu in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 18-07-06, 15:31
-
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