[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2005
    Beiträge
    16

    Update Syntax SQL

    Hallo,

    mir ist die Update Syntax im SQL bekannt aber für das was ich möchte,
    reicht mein wissen leider nicht aus.

    Habe 2 Tabellen mit folgenden Feldern
    1. Tabelle: LaufendeNr, Datum
    2. Tabelle: LaufendeNr, Erledigungen

    Jetzt möchte ich das Feld Erledigungen aktualisieren mit Update, aber
    nur diese Datensätze, die zwischen einem bestimmten Datum sind (Feld
    Datum von Tabelle 1).

    Syntax:

    update kisdata.bespf020
    set kisdata.bespf020.be2erl='X'
    from kisdata.bespf020

    INNER JOIN kisdata.bespf010
    on kisdata.bespf010.be1ben=kisdata.bespf020.be2ben
    where kisdata.bespf010.BE1FIR = 1
    and kisdata.bespf020.BE2FIR = 1
    and kisdata.bespf020.be2erl not like 'X'
    and kisdata.bespf020.be2ben = 7103445

    Es kommt die Meldung: Schlüsselwort from nicht erwartet!

  2. #2
    Registriert seit
    Apr 2001
    Beiträge
    7
    es fehlt das select vor FROM wenn du das 'X' mit einem Abfrageergebnis ersetzen willst.
    update kisdata.bespf020
    set kisdata.bespf020.be2erl= (select feld from kisdata.bespf020 ... )

    Update mit Select:

    http://www.rlpforen.de/showthread.ph...=update+select

    http://www.rlpforen.de/showthread.ph...=update+select

    http://www.rlpforen.de/showthread.ph...=update+select

    Suche mal in den Foren mit "SELECT UPDATE"

    Das "zwischen einem bestimmten Datum" versteh ich ehrlich gesagt nicht.
    Zwischen impliziert ZWEI Felder/Inhalte.
    entweder Fix mit BETWEEN Klausel oder das Between mit einem extra Select abhandeln (was ich allerdings noch nie probiert habe. Ich sehe aber nichts, was dagegen spricht)

    Gruß
    Andreas

  3. #3
    Registriert seit
    Apr 2005
    Beiträge
    16
    Hallo Andreas,
    danke für deine schnelle Antwort!

    1. Tabelle Aufträge - Hauptdatensatz: Auftragsnummer, Datum
    2. Tabelle Detail Aufträge - Detaildatensätze: Auftragsnummer, Erledigt Feld

    Es gibt zu einem Auftrag, mehrere Detaildatensätze in Tabelle 2.

    Jetzt mus ich das Feld Erledigt von Tabelle2 mit dem Wert X aktualisieren, aber nur die die zwischen einem bestimmten Datum liegen und dieses Datums Feld ist in Tabelle1. Kannst Du mir da auf die Sprünge helfen?

    Syntax - die nicht funktioniert:
    update kisdata.bespf020
    set kisdata.bespf020.be2erl = 'X'
    select be2erl from kisdata.bespf020
    INNER JOIN kisdata.bespf010
    on kisdata.bespf020.be2ben = kisdata.bespf010.be1ben
    where be1dat between 20030101 and 20041231

    Danke & Mfg

  4. #4
    Registriert seit
    Apr 2005
    Beiträge
    16
    Hallo,

    der Syntax der funktioniert, GOTT SEI DANK!!!

    update kisdata.bespf020
    set kisdata.bespf020.be2erl = 'X'
    where kisdata.bespf020.be2ben in(
    select be1ben
    from kisdata.bespf010
    where be1dat between 20030101 and 20041231)
    and be2erl not like 'X'

    Danke & MFG Horst

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. SQL Update 2 Dateien
    By moskito in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 30-08-06, 17:30
  3. SQL UPDATE, verknüpfung zweier Dateien
    By desti82 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-07-06, 15:25
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. SQL UPDATE SYNTAX
    By linguin in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 27-10-05, 15:32

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •