Hallo Burkhard,
auf welchem Release arbeitest Du?
Falls Du schon auf Release V5R4 bist, kannst Du das Ganze viel einfacher haben.
Mit Release V5R4 wurden OLAP-Ranking Funktionen eingeführt, mit deren Hilfe SQL-Statements ganz einfach durchnummeriert werden können.
Im folgenden Beispiel, wird eine laufende Nr. nach TotalKunde absteigend ermittelt und angezeigt. Obwohl die laufende Nr. nach TotalKunde vergeben wurde kann das Ergebnis nach KundeNr ausgegeben werden.
PHP-Code:
select Row_Number() over(Order By TotalKunde Desc) RowNbr, KundeNr, TotalKunde
from Summe
where Jahr = 2005
order By KundeNr;
In dem vorherigen Beispiel wurde nur das Jahr 2005 aufgelistet. Jetzt sollen alle Jahre aufgelistet werden und die Nummerierung pro Jahr erfolgen. In diesem Fall würde das SQL-Statement wie folgt aussehen:
PHP-Code:
select Row_Number() over(Partition By Jahr Order By TotalKunde Desc) RowNbr,
Jahr, KundeNr, TotalKunde
from Summe
order By Jahr, KundeNr;
In Deinem Beispiel könnte das irgendwie so aussehen:
PHP-Code:
with x as (select substr(MyText, 1, 10) as Sort, MyText
from Text)
select RowNumber() over(Partition by Sort Order by MyText) as RowNbr,
x.*from x;
Für vor Release V5R4 fällt mir zumindest im Moment keine einfache Lösung ein.
Birgitta
Bookmarks