Eine Tabelle listet eine Vielzahl von employee_ids mit einem Job auf.oracle 11g listagg mit der Referenz-ID
Die Namen der Mitarbeiter sind in einer separaten Tabelle aufgeführt. Aktionsnamen befinden sich ebenfalls in einer zusätzlichen Tabelle.
Die Listagg-Anweisung zum Aggregieren der Mitarbeiter-IDs ist einfach genug, aber die Namen der Mitarbeiter müssen aufgelistet werden.
Zusätzlich muss die Aktions-ID innerhalb jedes Jobs dem Mitarbeiter für die Aktion zugeordnet werden.
select job.id,
listagg(hist.empl_id, ',') within group (order by job.id) as emp_list,
listagg(hist.ACTION_ID, ',') within group (order by job.id) as actionid_list
from jobs job,
job_action_log hist
where job.id = hist.job_id
group by job.id;
Dies gibt die Jobid-, aggregierte empid- und aggregierte Aktions-ID korrekt zurück.
job employee action
-------------------------------
14 9, 12, 14, 9 5, 7, 88, 5
, was benötigt wird, ist den Namen des Mitarbeiters aus dem Mitarbeitertisch zurückzukehren, einen Aktionsnamen aus einer anderen Tabelle Aktion id Liste und die Namen der Aktionen und die richtigen Mitarbeiter mit der richtigen Aktion zu verknüpfen.
gewünschten Ergebnisse:
jobid employee name action
------------------------------------------------------
14 Bob, Joe, Sam, Linda sweep, glass, mop, sweep
irgendwelche Vorschläge oder Hilfe sehr geschätzt.
glatt .. danke !! – user761758