- Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 14 anos, 10 meses atrás por
drigo.
-
AutorPosts
-
4 de maio de 2011 às 10:22 pm #99079
drigo
ParticipanteOlaa,
Estou tentando realizar a concatenação de duas colunas, conforme mostra o select abaixo:
SELECT
pessoa.nome,
pessoa.sobrenome,
pessoa.cpf,//O erro ocorre ao tentar a concatenação abaixo:
log.abreviacao || ‘ ‘ || log.nome_local AS REFERENCIA,end.bairro,
end.apartFROM
…
WHERE…Se retirada a concatenação, o select FUNCIONA PERFEITAMENTE, mas caso a concatenação seja colocada,o seguinte erro acontece:
Relatório de Erro:
Erro de SQL: ORA-00918: column ambiguously defined
00918. 00000 – “column ambiguously defined”Como resolver tal problema, de forma a possibilitar o uso da concatenação ???
Desde Já, Agradeço.
5 de maio de 2011 às 12:37 am #99088rman
Participante[quote=”drigo”:329w6j1p]Olaa,
Estou tentando realizar a concatenação de duas colunas, conforme mostra o select abaixo:SELECT
pessoa.nome,
pessoa.sobrenome,
pessoa.cpf,//O erro ocorre ao tentar a concatenação abaixo:
log.abreviacao || ‘ ‘ || log.nome_local AS REFERENCIA,end.bairro,
end.apartFROM
…
WHERE…Se retirada a concatenação, o select FUNCIONA PERFEITAMENTE, mas caso a concatenação seja colocada,o seguinte erro acontece:
Relatório de Erro:
Erro de SQL: ORA-00918: column ambiguously defined
00918. 00000 – “column ambiguously defined”Como resolver tal problema, de forma a possibilitar o uso da concatenação ???
Desde Já, Agradeço.[/quote]
Aparentemente não é erro de concatenação não.
Posta uma DESC das tabelas envolvidas no SELECT, o SELECT completo que da erro, e o SELECT completo que da certo (sem a concatenação, mas com os campos).
5 de maio de 2011 às 8:00 am #99092drigo
Participante1) Select que dá o Erro de Concatenação:
SELECT
alp.id_im, alp.id_end, alp.codMun, alp.codMac, alp.codPs, alp.codPf, alp.codQua, alp.codLot, alp.codEd, alp.codUn, //Concatenação que gera o problema. vie.abLo || '' || vie.nomeLo AS Amostra, edi.valp, edi.bair, pss.nam, pss.sex, irre.rg, grp.codFam, pf.pfname FROM melmd.Tab_Mob alp LEFT JOIN melmd.viewGr vie ON alp.codMun = vie.codMun LEFT JOIN melmd.tabend edi ON edi.cdoLog = vie.cdoLog AND alp.idEnd = edi.idEnd JOIN melmd.Tabpe pss ON pss.idIm = alp.idIm LEFT JOIN melmd.TabRp irre ON irre.resId = pss.resId JOIN melmd.tabGf grp ON grp.idGf = pss.idGf JOIN tabEnt ten ON alp.idIm = ten .codPf JOIN tabReE irre ON alp.idIm = irre.EntId JOIN melmd.pg42 pf ON alp.codMun = pf.codMun AND alp.codMac = pf.codMac AND alp.codPs = pf.codPs AND alp.codPf = pf.codPfWHERE
irre.tEnt = 4 AND pss.Pfam = 1 AND alp.codMun = 1111 AND alp.codMac = 3 AND alp.codPs = 55 AND alp.codPf = 78 AND alp.idIm IN (SELECT idIm FROM Tabpe pss WHERE pfam=1 AND resId NOT IN (SELECT resId FROM TabRp)) AND alp.codMun=1111;2) Select que não dá Erro:
SELECT
alp.id_im, alp.id_end, alp.codMun, alp.codMac, alp.codPs, alp.codPf, alp.codQua, alp.codLot, alp.codEd, alp.codUn, vie.abLo, vie.nomeLo, edi.valp, edi.bair, pss.nam, pss.sex, irre.rg, grp.codFam, pf.pfname FROM melmd.Tab_Mob alp LEFT JOIN melmd.viewGr vie ON alp.codMun = vie.codMun LEFT JOIN melmd.tabend edi ON edi.cdoLog = vie.cdoLog AND alp.idEnd = edi.idEnd JOIN melmd.Tabpe pss ON pss.idIm = alp.idIm LEFT JOIN melmd.TabRp irre ON irre.resId = pss.resId JOIN melmd.tabGf grp ON grp.idGf = pss.idGf JOIN tabEnt ten ON alp.idIm = ten .codPf JOIN tabReE irre ON alp.idIm = irre.EntId JOIN melmd.pg42 pf ON alp.codMun = pf.codMun AND alp.codMac = pf.codMac AND alp.codPs = pf.codPs AND alp.codPf = pf.codPfWHERE
irre.tEnt = 4 AND pss.Pfam = 1 AND alp.codMun = 1111 AND alp.codMac = 3 AND alp.codPs = 55 AND alp.codPf = 78 AND alp.idIm IN (SELECT idIm FROM Tabpe pss WHERE pfam=1 AND resId NOT IN (SELECT resId FROM TabRp)) AND alp.codMun=1111;Grato pela Atenção.
-
AutorPosts
- Você deve fazer login para responder a este tópico.