sql - How to combine multiple rows in a single row, oracle -
i have following record:
and want return result this:
i have got result after joining many tables. still no idea achieve requirement.
note: have tried group didn't work.
query:
select p.code "projectnumber", p.name "projectname", p.start_date "startdate", p.end_date "enddate", trim (vp.firstname || ' ' || vp.lastname) "vp", trim (srpm.firstname || ' ' || srpm.lastname) "srpm", trim (pm.firstname || ' ' || pm.lastname) "pm", trim (sup.firstname || ' ' || sup.lastname) "sup", trim (pe.firstname || ' ' || pe.lastname) "pe" da.roject_table p left join ba.teams_v vp on (p.code=vp.projectnumber , vp.code not in ('30', '85', 'zz') , vp.employoeenumber not null , vp.status='a' , vp.projectrolename in ('sr. vice president, cfo','senior vice president','vice president','president','sr. vice president','vice president of operations','vice president', 'chief estimator','vice president, senior project manager','vice president of preconstruction , estimating','executive vice president','vice president, sr. project manager')) left join ba.teams_v srpm on (p.code=srpm.projectnumber , srpm.code not in ('30', '85', 'zz') , srpm.employoeenumber not null , srpm.status='a' , srpm.projectrolename in ('vice president/sr. project manager','senior project manager','vice president, senior project manager','vice president, sr. project manager')) left join ba.teams_v pm on (p.code=pm.projectnumber , pm.code not in ('30', '85', 'zz') , pm.employoeenumber not null , pm.status='a' , pm.projectrolename in ('project manager','assistant project manager','manager, project accounting','asst. project manager')) left join ba.teams_v sup on (p.code=sup.projectnumber , sup.code not in ('30', '85', 'zz') , sup.employoeenumber not null , sup.status='a' , sup.projectrolename in ('assistant superintendent','cmatt - superintendent','general superintendent')) left join ba.teams_v pe on (p.code=pe.projectnumber , pe.code not in ('30', '85', 'zz') , pe.employoeenumber not null , pe.status='a' , pe.projectrolename in ('senior project engineer','sr. project engineer','intern asst. project engineer','assistant project engineer','intern project engineer','project engineer')) p.pmp_comp_code not in ('30', '85', 'zz')and p.status_code not in ('closed') , p.pcode='all' , nvl(length(trim(translate(substr(p.code, 1, 1), ' +-.012*34-56+789lp', ' '))),'0') = 0 order "projectnumber"; thank you
try ... 'select distinct p.code "projectnumber", p.name "projectname", p.start_date "startdate", p.end_date "enddate", listagg((vp.firstname || ' ' || vp.lastname), ' ') within group (order rownum) vp, trim (srpm.firstname || ' ' || srpm.lastname) "srpm", trim (pm.firstname || ' ' || pm.lastname) "pm", trim (sup.firstname || ' ' || sup.lastname) "sup", trim (pe.firstname || ' ' || pe.lastname) "pe" da.roject_table p left join ba.teams_v vp on (p.code=vp.projectnumber , vp.code not in ('30', '85', 'zz') , vp.employoeenumber not null , vp.status='a' , vp.projectrolename in ('sr. vice president, cfo','senior vice president','vice president','president','sr. vice president','vice president of operations','vice president', 'chief estimator','vice president, senior project manager','vice president of preconstruction , estimating','executive vice president','vice president, sr. project manager')) left join ba.teams_v srpm on (p.code=srpm.projectnumber , srpm.code not in ('30', '85', 'zz') , srpm.employoeenumber not null , srpm.status='a' , srpm.projectrolename in ('vice president/sr. project manager','senior project manager','vice president, senior project manager','vice president, sr. project manager')) left join ba.teams_v pm on (p.code=pm.projectnumber , pm.code not in ('30', '85', 'zz') , pm.employoeenumber not null , pm.status='a' , pm.projectrolename in ('project manager','assistant project manager','manager, project accounting','asst. project manager')) left join ba.teams_v sup on (p.code=sup.projectnumber , sup.code not in ('30', '85', 'zz') , sup.employoeenumber not null , sup.status='a' , sup.projectrolename in ('assistant superintendent','cmatt - superintendent','general superintendent')) left join ba.teams_v pe on (p.code=pe.projectnumber , pe.code not in ('30', '85', 'zz') , pe.employoeenumber not null , pe.status='a' , pe.projectrolename in ('senior project engineer','sr. project engineer','intern asst. project engineer','assistant project engineer','intern project engineer','project engineer'))' 

Comments
Post a Comment