Ur-Tabelle:
NR || BEZ
--------------
4711 || Haus
4711 || Hund
4711 || Rose
Hallo mlyxs,
und die Ursprungstabelle hat keinerlei identifizierte Nummer für die drei Begriffe? Dann wird es sehr, sehr teuer und eigentlich nur lösbar, wenn Du eine alphabetische Sortierung akzeptierst.
Vorgehensweise: Schaffe dir drei „Views“, die den einzelnen Begriffen eine Wertigkeit zuordnet (z.B.):
create view view1\_ur\_tabelle
select NR, 1 as wert, min(bez) as bez
from ur\_tabelle
group by Nr, 1
create view view3\_ur\_tabelle
select NR, 3 as wert, max(bez) as bez
from ur\_tabelle
group by Nr, 3
select Nr, 2 as wert, bez
from ur-tabelle
where bez not in (select bez
from view3\_ur\_tabelle
union
select bez
from view1\_ur\_tabelle
)
und gruppiere diese Werte dann nach den Wert 1,2 und 3
select Nr, max(decode(wert,1,bez1,'')),
max(decode(wert,2,bez2,'')), , max(decode(wert,3,bez3,''))
from (
select Nr,wert,bez as bez1,'' as bez2,'' as bez3
from view1\_ur\_tabelle
union
select Nr,wert,'', bez,''
from view2\_ur\_tabelle
union
select Nr,wert,'','', bez
from view3\_ur\_tabelle
)
group by Nr
Dies ist aus dem Bauch herausgetippt, also keine Verantwortung für Fehler und schon gar nicht bzgl Performance.
MfG Georg V.