[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2007
    Beiträge
    249

    Grupenwechsel, ersten Satz ausgeben

    Folgendes Problem:

    in eine Schnittstellendatei wurden durch einen Fehler vermehrt Datensätze ausgegeben, die eigentlich nur einmal in der Schnittstelle sein dürften.

    Gibt es eine Möglichkeit, ohne Programmierung, jeweils den ersten oder letzten Datensatz in eine neue Datei zu schreiben?

    Mit Query gehts nicht, da ich mehr als 9 Gruppenstufen hätte.

    Bitte um Hilfe - danke im Voraus.

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Da hilft nur SQL:

    1. Datei mit allen Feldern erstellen (kann auch mit DDS erfolgen oder mit CRTDUPOBJ ohne Daten)
    2. Zum Einfügen kann z.B. der folgende Befehl verwendet werden:

    Code:
    Insert Into MyLib/MyNewTable
    With x as (Select Key1, Key2, Key3, ... KeyN, Min(RRN(YourTable) MinRRN
                 from YourTable
                 Group By Key1, Key2, Key3 ... KeyN)
    Select a.*
      from YourTable a join x on     a.Key1 = x.Key1
                                 and a.Key2 = x.Key2
                                 ...
                                 and a.KeyN = x.KeyN
      Where MinRRN = RRN(a)
    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

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    RRN ist ja, wie du selber sagtest, nicht gerade performant.
    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
    Aug 2001
    Beiträge
    2.928
    Man kann natürlich auch über ROW_NUMBER gehen, aber die Funktion gibt es zum einen erst seit Release V5R4 und kann zum anderen nur in Verbindung mit der SQE verwendet werden.

    Code:
    With x as (Select Row_Number() Over(Partition By Key1, Key2, ... KeyN
                                        Order By Fld1, Fld2, ... FldM) Lfd
                      a.*
                 from YourTable)
    Select *
      from x
      Where Lfd = 1:
    Bei der Frage schien mir es mir mehr um eine adhoc Lösung um die Daten zu bereinigen und als eine dauerhafte Lösung zu handeln.

    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

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... wenn die Sätze komplett gleich sind, tut's auch select distinct ...

    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/

Similar Threads

  1. CL-Parameter in Bildschirmformat ausgeben
    By dino in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 08-01-07, 07:12
  2. Numerische Felder in Alfa-Feldgruppe ausgeben
    By dino in forum NEWSboard Drucker
    Antworten: 4
    Letzter Beitrag: 01-09-06, 12:54
  3. Satz löschen - ODBC
    By heini in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 27-06-06, 11:34
  4. Satz ändern in Subfile
    By Toschie in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 31-05-05, 11:37
  5. ILE Cobol: Satz löschen aus Subfile
    By rebe in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 16-04-04, 09:29

Berechtigungen

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