[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Nov 2012
    Beiträge
    47

    Löschen per SQL in 2 Tabellen

    Hallo,

    gibt es eine Möglichkeit, gleiche Sätze in 2 Tabellen gleichzeitig zu löschen?

    z.B.
    Tabelle 1:
    Kunde 1
    Kunde 3
    Kunde 4

    Tabelle 2:
    Kunde 1
    Kunde 2
    Kunde 4


    und ich möchte als Ergebnis die Kunden 1 und 4, die in beiden Tabellen vorkommen, aus beiden Tabellen löschen.

    Geht das mit einer SQL-Anweisung ohne Zwischentabelle?

    Danke
    harbir

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... gleichzeitig kann man nicht einmal mehrere Sätze in einer Tabelle löschen. Klammern, sprich entweder alles geht oder nix, kann man beliebige Operationen unter Commit.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Da brauchst du 2 SQL's:

    delete from table1 a
    where exists (select * from table2 b where a.key=b.key)

    delete from table2 a
    where not exists (select * from table1 b where a.key=b.key)
    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

  4. #4
    Registriert seit
    May 2002
    Beiträge
    1.121
    @Baldur

    sind dann aber mit dem 2. SQL nicht auch die Sätze raus, die es vorher nicht in tabelle 1 gab ?

    ich denke es geht sogar nur über 3 SQL.

    1.)
    Select kunde from table1 a
    where exists (select * from table2 b where a.key=b.key)

    mit Ausgabe in einer TMPFILE

    2.)
    delete from table1 a
    where exists (select * from TMPFILE b where a.key=b.key)
    3.)
    delete from table2 a
    where exists (select * from TMPFILE b where a.key=b.key)

  5. #5
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Für die zwischen Tabelle verwende eine GLOBAL TEMPORARY TABLE.
    Diese wird automatisch in der QTEMP angelegt.

    Code:
    DECLARE GLOBAL TEMPORARY TABLE SESSION.tmp_tab1 like tab1
    Mit Drop Table oder sobald der Job endet wird die Tabelle gelöscht.

    lg Andreas

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ja, ihr habt Recht:

    create [ global temporary ] table as (
    select blabla
    ) with data
    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

Similar Threads

  1. Zugriff auf Tabellen langsam
    By JP in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 07-12-13, 11:01
  2. Tabellen in RPG IV
    By Gimli in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 31-03-03, 10:10
  3. Journaling für Tabellen ausschalten
    By TARASIK in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 07-01-03, 11:18
  4. Aktualisierung von Excel Tabellen
    By alex in forum NEWSboard Windows
    Antworten: 2
    Letzter Beitrag: 17-09-02, 20:08
  5. via SQL Tabellen erstellen
    By infomio in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 10-07-02, 14:43

Berechtigungen

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