Man kann das Ganze noch um einige Sub-Selects reduzieren:
Code:with kunden(kdnr, knz1, knz2, knz3, knz4, knz5) as ( values (1, 'AAA', 'BBB', 'CCC', 'DDD', 'EEE'), (2, 'AAA', 'BBB', 'BBB', 'CCC', 'DDD') ), unpivot as ( select distinct kdnr, knz, dense_rank() over(partition by kdnr order by knz) as knznr from kunden cross join lateral( values (knz1), (knz2), (knz3), (knz4), (knz5) ) as dt(knz) ) select KDNR, Coalesce(Min(Case When knzNr = 1 Then KNZ End), '') as KNZ1, Coalesce(Min(Case When knzNr = 2 Then KNZ End), '') as KNZ2, Coalesce(Min(Case When KnzNr = 3 Then KNZ End), '') as KNZ3, Coalesce(Min(Case When KnzNr = 4 Then KNZ End), '') as KNZ4, Coalesce(Min(Case When KnzNr = 5 Then KNZ End), '') as KNZ5 From Unpivot Group by KdNr;
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks