Erro ao tentar usar um campo do Select no SubSelect

4 respostas
evertonsilvagomesjav

Pessoal estou tentando usar um campo de um SELECT dentro do SubSelect mas aparece o seguinte erro:

Error: "AV1.VL_ANO_MES" is an undefined name.. SQLCODE=-204, SQLSTATE=42704, DRIVER=3.50.152 SQLState: 42704 ErrorCode: -204 Error: An error occurred during implicit system action type "2". Information returned for the error includes SQLCODE "-204", SQLSTATE "42704" and message tokens "AV1.VL_ANO_MES".. SQLCODE=-727, SQLSTATE=56098, DRIVER=3.50.152 SQLState: 56098 ErrorCode: -727

Alguem saber pq?

O select e esse:

SELECT av1.VL_ANO_MES, DECODE(av1.IN_AVALIACAO,'F', 'S', 'N') AS indAvaliacao1, av1.ST_EDITAVEL AS editavel1, MAX(DECODE(mi1.CO_SEQ_META_INDIVIDUAL, 64, av1.VL_NOTA, NULL)) , MAX(DECODE(mi1.CO_SEQ_META_INDIVIDUAL, 80, av1.VL_NOTA, NULL)) , MAX(DECODE(mi1.CO_SEQ_META_INDIVIDUAL, 81, av1.VL_NOTA, NULL)) , MAX(DECODE(mi1.CO_SEQ_META_INDIVIDUAL, 82, av1.VL_NOTA, NULL)) , MAX(DECODE(mi1.CO_SEQ_META_INDIVIDUAL, 83, av1.VL_NOTA, NULL)) , MAX(DECODE(mi1.CO_SEQ_META_INDIVIDUAL, 84, av1.VL_NOTA, NULL)) , MAX(DECODE(mi1.CO_SEQ_META_INDIVIDUAL, 85, av1.VL_NOTA, NULL)) , MAX(DECODE(mi1.CO_SEQ_META_INDIVIDUAL, 2, av1.VL_NOTA, NULL)) , MAX(DECODE(mi1.CO_SEQ_META_INDIVIDUAL, 3, av1.VL_NOTA, NULL)) , notaReconsideracaoMeta1.VL_NOTA AS notaReconsideracaoMeta1 FROM TB_AVALIACAO_META av1 JOIN TB_META_INDIVIDUAL mi1 ON ( av1.CO_META_INDIVIDUAL = mi1.CO_SEQ_META_INDIVIDUAL ) JOIN RL_SERVIDOR_EQUIPE AS rl1 ON (av1.CO_SERVIDOR_EQUIPE = rl1.CO_SEQ_SERVIDOR_EQUIPE) LEFT JOIN (SELECT CO_META_INDIVIDUAL, DECODE(av1.VL_ANO_MES,201211,notaReconMeta.VL_NOTA,NULL) FROM TB_NOTA_RECONSIDERACAO_META notaReconMeta JOIN TB_RECONSIDERACAO reconsideracao ON notaReconMeta.CO_RECONSIDERACAO = reconsideracao.CO_SEQ_RECONSIDERACAO JOIN RL_SERVIDOR_EQUIPE rl ON reconsideracao.CO_SERVIDOR_EQUIPE = rl.CO_SEQ_SERVIDOR_EQUIPE WHERE reconsideracao.DT_ULTIMA_ALTERACAO in (SELECT MAX(recons.DT_ULTIMA_ALTERACAO) FROM TB_RECONSIDERACAO recons WHERE recons.IN_RECONSIDERACAO = '6' AND recons.CO_SERVIDOR_EQUIPE = 700) AND rl.CO_SEQ_SERVIDOR_EQUIPE = 700) AS notaReconsideracaoMeta1 ON mi1.CO_SEQ_META_INDIVIDUAL = notaReconsideracaoMeta1.CO_META_INDIVIDUAL WHERE rl1.CO_SEQ_SERVIDOR_EQUIPE = 700 AND av1.IN_AVALIACAO = 'P' GROUP BY av1.VL_ANO_MES, av1.IN_AVALIACAO, av1.ST_EDITAVEL,notaReconsideracaoMeta1.VL_NOTA

O campo esta dentro do DECODE do SubSelect é o av1.VL_ANO_MES

4 Respostas

drsmachado

Esse erro ocorre por que o sgbd tentará realizar primeiro o subselect, depois o select.
Como o subselect tenta usar um campo que ele não conhece, você recebe o erro.

evertonsilvagomesjav

Mas tem como ou resolver de alguma forma?

evertonsilvagomesjav

Alguem ai sabe como me ajudar?

pmlm

Obtens no subselect só o que é do subselect e fazes o decode no select de fora.

Criado 2 de agosto de 2012
Ultima resposta 3 de ago. de 2012
Respostas 4
Participantes 3