Hi @ll,
ich habe mir jetzt die Zähne ausgebissen und hoffe dass jemand von euch eine zündende Idee hat.
Im Internet habe ich keine Lösung gefunden, bzw. ich habe die unten realisierte Lösung gefunden, die aber auf dem System i scheinbar nicht läuft.
Die Anforderung ist eigentlich ganz einfach: ich möchte Namen aus mehreren Zeilen einer Tabelle in separaten Spalten in einer Zeile ausgegeben haben.
Code:Tabelle1: Nummer1 4711 4712 4713 Tabelle2: Nummer2 | Name 4711 | Name1 4711 | Name2 4711 | Name3 4711 | Name4 4712 | Name1 4712 | Name2 4713 | Name1 4713 | Name2 4713 | Name3Ich dachte mir in einer Variablen die Nummer zu merken, um festzustellen ob die Nummer wechselt und in der anderen Variablen hochzuzählen der wievielte Satz innerhalb jeder Nummer gelesen wurde. Damit habe ich gleichzeitig die Spalte in der der Name eingestellt werden muss.Code:Ergebnis: Nummer1 | Spalte1 | Spalte2 | Spalte3 | Spalte4 4711 | Name1 | Name2 | Name3 | Name4 4712 | Name1 | Name2 | | 4713 | Name1 | Name2 | Name3 |
Natürlich freue ich mich auch über eine andere LösungCode:CREATE VARIABLE yrn dec CREATE VARIABLE ystnr dec select Nummer1 as xxstnr, p.Nummer2, p.Name, yrn, ystnr, RowNum MAX(CASE WHEN p.RowNum=1 THEN p.Name END) as Spalte1, MAX(CASE WHEN p.RowNum=2 THEN p.Name END) as Spalte2, MAX(CASE WHEN p.RowNum=3 THEN p.Name END) as Spalte3, MAX(CASE WHEN p.RowNum=4 THEN p.Name END) as Spalte4 from Tabelle1 inner join ( select Nummer2, Name, set yrn = case when Nummer2 <> ystnr then 0 end, set ystnr = Nummer2, set yrn = yrn + 1 as RowNum from Tabelle2 group by Nummer2, Name order by Nummer2, Name ) as p on Nummer1 = p.Nummer2 order by Nummer1
Gruß
wti
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)




Mit Zitat antworten
Bookmarks