-
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
-
Versuche es mal in der Art
PHP-Code:
Select count(*) as LFDNR, a.name, a.vorname
from Kunde a, Kunde b
where a.name concat a.vorname >= b.name concat b.vorname
group by a.name, a.vorname
order by LFDNR
Gruß
Ronald
-
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.)
-
... 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
-
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 Lfd, Fld1, Fld2, ... 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
-
... 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 von B.Hauser
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 Lfd, Fld1, Fld2, ... 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
-
Wobei ich mir das in embedded SQL (Function/Procedure) wohl eher schenken kann, da ich die Sätze doch einfach selber zählen kann.
Similar Threads
-
By cheffe1008 in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 21-09-06, 16:05
-
By ExAzubi in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 18-07-06, 09:31
-
By rr2001 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 07-07-06, 09:56
-
By klausgkv in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 08-06-06, 13:47
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks