Hallo Zusammen,
vielen Dank für die Infos als CTE könnte man es wie folgt lösen:
.. da ich aber Transparenz bevorzuge und hier die Gefahr von Endlosrekursion besteht, habe ich mich für folgenden Weg entschied:Code:DECLARE CSR01 CURSOR FOR With RPL (level, TSTNRK, TSSTNK, TSMENG) As ( (Select 1, ROOT.TSTNRK, ROOT.TSSTNK, ROOT.TSMENG From HTSLSP ROOT where TSTNRK = :XX_KEY ) Union All (Select PARENT.level+1, CHILD.TSTNRK, CHILD.TSSTNK, CHILD.TSMENG * PARENT.TSMENG From RPL PARENT, HTSLSP CHILD Where PARENT.TSSTNK = CHILD.TSTNRK) ) Select TSSTNK, Sum(TSMENG) As TSMENG From RPL Group By TSSTNK
- Auflösung über Rekursive RPG_Funktion
- Übergabe einer DS-Array
- jede Ebene wird über ein SQL aufgelöst welches die Daten in ein temp. Array "entläd" da der Cursor quasi Global geöffnet ist.
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks