Anmelden

View Full Version : SQL Funktion liefert falsches Ergebnis



Seiten : 1 [2]

B.Hauser
18-01-13, 10:51
Ja OK, das habe ich dann doch überlesen.
Aber gabs da nicht was mit recursiver CTE in einem anderen Beitrag?

Mit Recursiven CTEs geht so was und müsste etwa so aussehen:

with x as (SELECT ROW_NUMBER() over(partition by FirNr, KndNr ORDER BY rrn(a)) Seq,
a.*
FROM Table1 a),
Rec (FirNr, KndNr, Wagr, Seq)
as ( select FirNr, KndNr, x.Wagr, Seq from x where Seq = 1
union all
select x.FirNr, x.KndNr concat ' ' concat Rec.WaGr,
Rec.Seq + 1
from x join Rec on x.FirNr = Rec.FirNr
and x.KndNr = Rec.KndNr
and x.Seq = Rec.seq + 1),
y as (select FirNr, KndNr, Max(Seq) Seq
From Rec
Group By FirNr, KndNr)
select rec.FirNr, rec.KndNr, WaGr
from Rec join y Using (FirNr, KndNr, Seq )

Ob das allerdings einfacher als die kleine UDF ist wage ich zu bezweifeln.

Birgitta