0
I have a multi-valued field where I need the result to return in one line, trying to use LISTAGG, but it returns one value per line and each value repeated 5 x.
Any idea ?
I’ll paste the code so it’s clear.
SELECT DISTINCT
A.ID ID_PROJETO,
A.CODE Codigo_projeto,
A.NAME NOME_PROJETO,
A.DESCRIPTION DESCRICAO,
B.BR_TECNOLOGIA TECNOLOGIA,
B.BR_NOME_GER_EXECUTO GERENCIA_EXECUTORA,
A.PRIORITY PRIORIDADE,
A.STATUS STATUS,
D.NAME STATUS_NAME,
E.PERCENT_COMPLETE * 100 PERCENT_COMPLET,
F.UNIQUE_NAME CHAVE_GERENTE,
F.FULL_NAME NOME_GERENTE,
G.FULL_NAME NOME_USUARIO_CRIADOR,
G.UNIQUE_NAME CHAVE_USUARIO_CRIADOR,
A.SCHEDULE_START DATA_DE_INICIO,
A.SCHEDULE_FINISH PREVISAO_DE_CONCLUSAO,
A.CREATED_DATE DATA_CRIACAO_PROJETO,
B.br_situacao_projeto SITUACAO_PROJETO,
B.br_dt_conclusao DATA_CONCLUSAO,
B.br_flag_rac ACOMPANHAMENTO_PRESIDENCIA,
B.br_id_sol_yscsol SOLICITACAO_DE_ORIGEM,
B.obj_objective OBJETIVO,
to_char(B.br_justificativa) JUSTIFICATIVA,
to_char(B.br_expectativas) EXPECTATIVAS,
B.br_nome_ger_executo GERENCIA_EXECUTORA,
F.full_name GERENTE_DESTINO,
G.full_name LIDER_PROJETO,
**LISTAGG(r.full_name, ';') WITHIN GROUP (ORDER BY r.full_name desc)
PMO_DA_AREA_EXECUTORA,**
B.br_nome_diretoria DIRETORIA_CLIENTE,
OU.name GERENCIA_CLIENTE,
B.br_nome_cliente NOME_CLIENTE,
B.br_chave_cliente CHAVE_CLIENTE,
B.br_tap TAP,
B.br_tep TEP,
--t.prname TAREFA,
CASE
WHEN B.br_ante_projeto = 1 THEN 'ANTEPROJETO'
WHEN B.BR_ANTE_PROJETO = 0 THEN 'PROJETO'
END PROJETO
FROM INV_INVESTMENTS A
LEFT JOIN ODF_CA_PROJECT B ON (A.ID = B.ID)
LEFT JOIN CMN_LOOKUPS_V D ON (A.STATUS = D.LOOKUP_ENUM)
AND d.lookup_type = 'INVESTMENT_OBJ_STATUS' AND d.language_code = 'pt'
LEFT JOIN INV_PROJECTS E ON (A.ID = E.PRID)
LEFT JOIN SRM_RESOURCES F ON (A.MANAGER_ID = F.USER_ID)
LEFT OUTER JOIN SRM_RESOURCES G ON (G.USER_ID = A.CREATED_BY)
join prj_obs_units OU on B.br_depto_cliente = OU.id and OU.type_id = 5000019
join prtask t on A.id = t.prprojectid
**left join ODF_MULTI_VALUED_LOOKUPS d on d.pk_id=A.id and d.attribute =
'pbk_prj_rvwrs' and d.object ='project'
join srm_resources r on r.id = d.value**
where A.id = 5140794
group by
A.ID ,
A.CODE ,
A.NAME ,
A.DESCRIPTION ,
B.BR_TECNOLOGIA,
B.BR_NOME_GER_EXECUTO ,
A.PRIORITY ,
A.STATUS ,
D.NAME ,
E.PERCENT_COMPLETE * 100 ,
F.UNIQUE_NAME ,
F.FULL_NAME ,
G.FULL_NAME ,
G.UNIQUE_NAME ,
A.SCHEDULE_START ,
A.SCHEDULE_FINISH ,
A.CREATED_DATE ,
B.br_situacao_projeto ,
B.br_dt_conclusao ,
OU.name ,
to_char(B.br_expectativas) ,
B.br_nome_diretoria ,
B.br_flag_rac,
B.br_id_sol_yscsol ,
B.br_nome_ger_executo,
B.br_nome_cliente ,
B.br_chave_cliente ,
B.obj_objective ,
to_char(B.br_justificativa) ,
F.full_name,
G.full_name,
A.target_manager_id ,
A.manager_id ,
B.br_tap ,
B.br_tep ,
--t.prname ,
B.br_ante_projeto,
r.full_name
I get it. I’m an intern and a lot of things are still confusing. Is there no way to put them in this format? I mean, the results in a single line?
– Jessé Pereira
Do the distinct before and listagg after as in the example
– Motta
I’m not getting it, that’s it?
– Jessé Pereira