Ich habe 3 Tabellen: Tabelle_A, Tabelle_B und Tabelle_C. Tabelle_A hat einen Primärschlüssel und wird von einem Fremdschlüssel aus Tabelle_B referenziert. Tabelle C hat einen Primärschlüssel, auf den von einem Fremdschlüssel aus Tabelle B verwiesen wird. Das Design ist wie folgt aus:So verwenden Sie eine Bedingung auf Listagg auf Oracle-Abfrage
Table_A: ID_A TextData
Table_B: ID_B ID_A ID_C
Table C: ID_C TextData
die Abfrage:
select a.id_a, a.textdata, listagg(c.textdata, ', ') within group (order by c.id_c) data_c from table_a a inner join table_b b on (a.id_a = b.id_a) inner join table_c c on (b.id_c = c.id_c) where c.textdata like :data group by a.id_a, a.textdata;
ich nur Daten aus einer Tabelle von c.textdata bekommen, nicht von Listagg. Wenn ich versuche, diese Abfrage verwenden:
select a.id_a, a.textdata, listagg(c.textdata, ', ') within group (order by c.id_c) data_c from table_a a inner join table_b b on (a.id_a = b.id_a) inner join table_c c on (b.id_c = c.id_c) where listagg(c.textdata, ', ') like :data group by a.id_a, a.textdata;
Ich erhalte eine Fehlermeldung wie: Gruppenfunktion nicht hier erlaubt ist
Wie eine Bedingung auf listagg Parameter zu geben, weil ich die Daten müssen aus Listagg?
ich versucht habe die Abfrage auszuführen und ich bekomme das Ergebnis wie dies: "data_c": ungültiger Bezeichner – user3505775
Es tut mir leid, ich habe einen falschen Zustand. Danke für Ihre Unterstützung: D – user3505775