[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jan 2006
    Beiträge
    82

    laufende Nummer in Select

    Hallo *ALL,

    ich suche eine Möglichkeit in einem Select eine laufende Nummer als weiteres Feld anzuzeigen.
    Ich meine dabei nicht die rrn!


    Select vorname, name from Kunde:
    Hans, Meier
    Ula, Schmidt

    Select ? , name, vorname from kunde:
    1,Hans,Meier
    2,Ulla Schmidt


    Danke für euer Hilfe

  2. #2
    Registriert seit
    May 2002
    Beiträge
    1.121
    Versuche es mal in der Art
    PHP-Code:
    Select count(*) as LFDNRa.namea.vorname
    from   Kunde a
    Kunde b
    where a
    .name concat a.vorname >= b.name concat b.vorname
    group by a
    .namea.vorname
    order by LFDNR 
    Gruß
    Ronald

  3. #3
    Registriert seit
    Apr 2005
    Beiträge
    104
    Gibts, zumindest ab V6R1 als SQL-Funktion ROWID() (o.ä.) in jedem Select.

    Damit wird dann jedem selektierter Satz gezählt, solange, wie der Cursor des Selects offen ist, bzw. bis ein anderes Select geöffnet wird.

    Habs auch als User-Defined-SQL-Function gesehen; in V6R1 ist es noch ein schlecht dokumentiertes Feature zum Beispiel für Datawarehouses.

    Mußte eben mal ausgiebiger Googlen. (Hab leider keine Zeit, es jetzt für Dich rauszusuchen.)

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... das gibts bereits ab V5R4 (mindestens) schon ordentlich mit den OLAP Funktionen rank dense_rank und rowid, bei denen dann zusätzlich noch Sortierfelder angegeben werden.

    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/

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Nicht ROWID sondern Row_Number().
    RowId ist ein eigener Datentyp. Beim Insert (oder Write mit native I/O) wird in einer ROWID-Spalte ein eindeutiger Wert generiert, der jedoch nicht (zwingend) in auf- oder absteigender Reihenfolge ist.

    Im folgenden Beispiel wird eine laufende Nr. abh. von der endgültigen Sortierung (order By) gebildet, d.h. 1. Satz = 1, 2.Satz = 2 .... n. Satz = n:

    PHP-Code:
    Select Row_Number() Over() as LfdFld1Fld2, ... FldN
    From MyFile
    Where 
    ....
    Order By ... 
    Die Angabe von Order By innerhalb der OVER-Anweisung erlaubt eine von der endgültigen Sortierung abweichende Generierung einer laufenden Nr.

    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

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... danke für die Korrektur, parallel schreiben zum denken geht manchmal schief...
    Casus knaxus bei den OLAP Spezifikationen (so nenne sich diese Funktionen) ist, dass man dann auch nach denen sortieren, selektieren und gruppieren kann.
    Wobei diese Dinger zuweilen nicht sehr flott sind.

    D*B


    Zitat Zitat von B.Hauser Beitrag anzeigen
    Nicht ROWID sondern Row_Number().
    RowId ist ein eigener Datentyp. Beim Insert (oder Write mit native I/O) wird in einer ROWID-Spalte ein eindeutiger Wert generiert, der jedoch nicht (zwingend) in auf- oder absteigender Reihenfolge ist.

    Im folgenden Beispiel wird eine laufende Nr. abh. von der endgültigen Sortierung (order By) gebildet, d.h. 1. Satz = 1, 2.Satz = 2 .... n. Satz = n:

    PHP-Code:
    Select Row_Number() Over() as LfdFld1Fld2, ... FldN
    From MyFile
    Where 
    ....
    Order By ... 
    Die Angabe von Order By innerhalb der OVER-Anweisung erlaubt eine von der endgültigen Sortierung abweichende Generierung einer laufenden Nr.

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

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Wobei ich mir das in embedded SQL (Function/Procedure) wohl eher schenken kann, da ich die Sätze doch einfach selber zählen kann.
    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. CREATE FUNCTION mit select im Bauch ?
    By cheffe1008 in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 21-09-06, 16:05
  2. DDS Font, was verbirgt sich hinter der Nummer?
    By ExAzubi in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 18-07-06, 09:31
  3. sql select mit zusätzl. Feldern
    By rr2001 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 07-07-06, 09:56
  4. Cobol-Programm mit Embedded SQL (SELECT CASE)
    By klausgkv in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 08-06-06, 13:47
  5. select 10 größte Werte je Ordnungsbegriff
    By holly in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 16-05-06, 12:45

Berechtigungen

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