[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2002
    Beiträge
    21

    Post doppelte Sätze finden = > SQL

    Hallo alle zusammen,
    gibt es eine Möglichkeit via SQL doppelte Sätze in einer Datei zu finden UND zu löschen ?? Zur Zeit zeige ich mir die Sätze mit "Order by" Artno.und blättere und blättere...
    Das kann es aber nicht sein. So wie ich feststellen konnte, sind die relevanten Sätze zu 100% identisch.

    Bin im voraus für jeden Tip dankbar
    Beste Grüße
    Michael

  2. #2
    Registriert seit
    Apr 2002
    Beiträge
    792

    Talking

    Hi,

    also ich würde folgendermaßen vorgehen.
    Du erstellst eine neue Tabelle wo nur die Artikelnummern drin sind die doppelt sind. Dies fragtst du ab indem du auf die Artikeldatei eine Abfrage legst die einmal die Artikelnummer enthält und einmal die Anzahl der Artikelnummer (wie oft vorhanden). Im Where-String musst du dan angeben das du nur die haben willst wo Anzahl > 1 ist.
    Nachdem du die Datei erstellt hast, verknüpfst du sie mit der Artikeldatei und löscht alle gleichen Sätze.
    Leider kann ich dir keinen extakten SQL-String sagen, da wir SQL nicht installiert haben.

    Ich hoffe ich konnte dir helfen.

    Sascha

    P.s. Falls du erreichen willst die Duplikate automatisch zu löschen (also nur einen Satz der beiden) so fürchte ich wird das nicht automatisch funktionieren. Jedenfalls wüsste ich nicht wie.

  3. #3
    cicero22 Besucher/Guest

    Talking

    Hallo heynem und *all

    Ich denke hiermit spreche ich JonnyRico aus der Seele:

    Select * from perstp a
    Where 1 < (select count(*) from
    Perstp b
    Where a.fld1 = b.fld1)
    Order by a.fld1

    Das Ding ist genial!
    Natürlich ist where 1 auch durch where 2 oder 3 ersetzbar...

    Einfach ausprobieren und glücklich sein!

    gruß dirk

  4. #4
    Registriert seit
    Sep 2002
    Beiträge
    21

    Wink

    Hallo Dirk,
    Du hast recht, einfach genial. Funktioniert
    perfekt. Besten Dank, auch an Sascha. Aber die SQL Variante ist ein wenig schneller :-)

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.207

    Post

    Der Subselect ist zwar ganz nett, aber es geht noch schneller:

    select artnr, count(*) from file
    group by artnr
    having count(*)>1
    [order by artnr]

    Sollen Sätze gefunden werden, wo mehrere Felder identisch sein können, so ist der Select entsprechend zu erweitern:

    select f1, f2, ..., count(*)
    from file
    group by f1, f2, ...
    having count(*)>1
    [order by f1, f2, ...]
    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

  6. #6
    Registriert seit
    Mar 2001
    Beiträge
    34

    Post

    ... noch ne Variante:
    select distinct * from dateiname
    Ausgabe in Outfile.
    Da ist dann wirklich nix mehr doppelt.
    Anschließend Outfile über Ursprungsdatei kopieren. Das wars dann.
    Gruss
    Frank

  7. #7
    cicero22 Besucher/Guest

    Unhappy

    Ja Fuerchau! -
    muss ich neidlos anerkennen...

    Dein SQL ist wohl noch ´ne bessere Wahl -
    Danke ...

    Ciao Dirk

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.207

    Post

    @Rukober

    Die Aufgabenstellung hieß: wie finde ich die doppelten und nicht wie eliminiere ich die doppelten.
    Bei DISTINCT wähle ich natürlich nur die eindeutigen Daten aus, über die Anzahl (siehe count(*)) erfahre ich dabei leider nichts.
    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. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 10:43
  2. SQL: DISTINCT und RRN?
    By Akku in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 10-05-06, 09:07
  3. SQl Sätze hinzufügen
    By Herbie in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 30-11-04, 11:46
  4. doppelte Sätze löschen mit SQL
    By hs in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 22-11-04, 11:30
  5. doppelte Sätze in PF finden und löschen
    By Schnichels in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 23-11-01, 13:54

Berechtigungen

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