[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2012
    Beiträge
    360

    Duplikate mit Sql ersetzen

    Hallo,

    ich habe mir mehrere gesicherte Dateien zusammenkopiert.
    Wollte fragen ob es mit Sql möglich ist Duplikate zu löschen oder
    muss ich ein Rpg-Programm mit Datenstrukturen-Vergleich schreiben.

    Dank im Voraus

    Tarki

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    SQL kann dir nur die doppelten (mehrfachen) vorkommen ermitteln.
    Allerdings ist das mit dem Löschen per SQL nicht möglich.
    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 2012
    Beiträge
    360
    Hallo Herr Fürchau,

    kann ich mit dem Sql auch die Sätze die doppelt vorkommen ausblenden?
    Ich kenne nur das group by.

    Dank im Voraus

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Stichwort "having":

    select a, b, count(*)
    from myfile
    group by a, b
    having count(*) = 1
    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
    May 2002
    Beiträge
    1.121
    Wenn ALLE Felder der doppelten Sätze identisch sind..
    Dann erstelle dir eine leere Datei und dann mit SQL

    Insert into MyNewF
    Select distinct + from Myfile

    Damit solltest du nur immer einen Satz haben

    Gruß Ronald

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Allerdings ist das mit dem Löschen per SQL nicht möglich.
    Und warum nicht?
    Das folgende SQL-Statement löscht doppelte Sätze (könnte allerdings bei großen Tabellen ein bißchen langsam werden, da über die relative Satz-Nr. verglichen wird):
    Code:
    Delete 
    from YourFile a                                              
    where RRN(a) <> (select  min(rrn(b))                         
                       from  YourFile b                          
                       where (a.Key1, a.Key2) = (b.Key1, b.Key2))
    Birgitta
    Birgitta Hauser

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

Similar Threads

  1. Suchen/Ersetzen?
    By Matthias.Hayn in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 15-07-02, 07:03

Berechtigungen

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