0
)
1つの表には、1つのジョブでさまざまなemployee_idsがリストされています。oracle 11g listagg(参照IDは
従業員名は別の表に記載されています。アクション名は、追加の表にもあります。
従業員IDを集計するlistaggステートメントは簡単ですが、従業員名をリストする必要があります。
さらに、各ジョブ内のアクションIDをアクションの従業員に関連付ける必要があります。
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;
これは正しくjobid、集約されたempidと集約アクションIDを返しています。
job employee action
-------------------------------
14 9, 12, 14, 9 5, 7, 88, 5
必要とされるのは、アクションIDとアクションの名前を列挙し、別のテーブルから、従業員表からアクション名を従業員名を返すために、正しい行動との適切な従業員を関連付けることです。
所望の結果:
jobid employee name action
------------------------------------------------------
14 Bob, Joe, Sam, Linda sweep, glass, mop, sweep
任意の提案や支援が大幅に高く評価します。
滑らかです。ありがとうございます! – user761758