Hi Flons,
Leider verstehe ich das Statement (noch) nicht so ganz.
das tue ich auch nicht, mir scheint aber daß man Dich falsch
verstanden hat.
So weit ich das sehe (habe auch nur Oracle Grundkenntnisse)
hat Dir Ulrich Vaid eine (sehr interessante!) Lösung zur
Transponation geboten (Lieber Ulrich, korrigier mich bitte,
falls ich in meiner Vermutung falsch liege!).
Gruß,
Luke
Hi Luke,
Du liegst falsch
Beispiel (Mit dem „Datenmodel“ des OP, welches ich so natürlich eher nicht machen würde…)
–Create Table
CREATE TABLE dev_examples.kunde_autos (
kunde VARCHAR2 (10),
autos VARCHAR2 (10)
)
/
–Insert some Stuff…
INSERT INTO kunde_autos
VALUES (
‚müller‘, ‚bmw‘
);
INSERT INTO kunde_autos
VALUES (
‚müller‘, ‚mercedes‘
);
INSERT INTO kunde_autos
VALUES (
‚müller‘, ‚honda‘
);
INSERT INTO kunde_autos
VALUES (
‚meier‘, ‚mercedes‘
);
INSERT INTO kunde_autos
VALUES (
‚meier‘, ‚rostkiste‘
);
INSERT INTO kunde_autos
VALUES (
‚schmid‘, NULL
);
Commit;
SELECT a.kunde, a.autos
FROM kunde_autos a;
KUNDE AUTOS
müller bmw
müller mercedes
müller honda
meier mercedes
meier rostkiste
schmid
–und nun das PIVOT:
select
kunde,
xmltransform
(
sys_xmlagg
(
sys_xmlgen(autos)
),
xmltype
(
‚<?xml version="1.0"?>;‘
)
).getstringval() listagg
from kunde_autos
group by kunde
/
–Ergebnis :
KUNDE LISTAGG
meier mercedes;rostkiste;
müller bmw;mercedes;honda;
schmid
Gruss