[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Apr 2003
    Beiträge
    195

    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“)

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Ja, du solltest besser

    where exists (select * from ... where ...)

    verwenden, da du hier die Schlüssel gezielt angeben kannst.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Apr 2003
    Beiträge
    195
    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)

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Da hast du voll ins schwarze getroffen .
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Nov 2003
    Beiträge
    2.403

  6. #6
    Registriert seit
    Apr 2003
    Beiträge
    195
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Da hast du voll ins schwarze getroffen .
    Wow, danke Dir für Deine wie immer schnelle und konkrete Hilfe.

  7. #7
    Registriert seit
    Apr 2003
    Beiträge
    195

    Unhappy

    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?

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    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.")
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Apr 2003
    Beiträge
    195
    Danke Dir nochmals recht herzlich für Deine Unterstützung.

    LG
    Franz-Georg

  10. #10
    Registriert seit
    May 2002
    Beiträge
    1.121
    Zitat Zitat von Fuerchau Beitrag anzeigen
    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

  11. #11
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von malzusrex Beitrag anzeigen
    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
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  12. #12
    Registriert seit
    Apr 2003
    Beiträge
    195
    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

  1. SQL Update aus zwei Dateien mit 3 Schlüsselfeldern
    By mk in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 13-07-12, 08:53
  2. Editcode in SQL beschriebener Datei ?
    By ILEMax in forum IBM i Hauptforum
    Antworten: 16
    Letzter Beitrag: 24-01-07, 09:04
  3. SQL Update 2 Dateien
    By moskito in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 30-08-06, 17:30
  4. Update Syntax SQL
    By wuwu in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 18-07-06, 15:31
  5. SQL .. for update of (RPG embedded SQL)
    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
  •