SQL Sub Query Not Working

opl12
New Contributor II

Olá pessoal,
espero que todos estejam bem!

Por favor, você pode ajudar? ou orientação?

Está retornando um erro na instrução "CASE WHEN"

A lógica é a seguinte:
Se o campo `valor` FOR NULO ENTÃO
eu executo uma Sub Consulta usando os filtros:
origem, destino e dt
Nesta Sub Consulta quero trazer a maior data do campo `DT` da tabela ` tabeba_extracao` 

O erro ocorre na subconsulta, a mensagem de erro é esta:
ExtendedAnalysisException: [UNRESOLVED_COLUMN.WITH_SUGGESTION] Um parâmetro de coluna ou função com o nome `e`.`cb` não pode ser resolvido

 

obrigado!

aqui está a consulta SQL:

SELECT to_date ( e . `DT` ,  'yyyyMMdd' )  AS `Data`
	 , e . `origem`
	 , e . `destino`
	 , e . `cb`
	 , CASO  
		QUANDO d . `valor` É  NULO 
			ENTÃO  ( 
					SELECT b . `valor` FROM financeiro_proc . tbldadConversaoMoeda AS b WHERE b . `cb` = e . `cb`
						 AND b . `destino` = e . `destino`
						 AND b . `origem` = e . `origem`
						 AND to_date ( b . `data_do_dado` ,  'yyyyMMdd' )  =  ( 
							SELECT  MAX ( to_date ( C . `data_do_dado` ,  'yyyyMMdd' ) )  FROM tabela_categoria C WHERE C . `cb` = e . `cb `
								 AND C . `destino` = e . `destino`
								 AND C . `origem` = e . `origem`
								 AND to_date ( C . `data_do_dado` ,  'yyyyMMdd' )  < to_date ( e . `DT` ,  'yyyyMMdd' ) 
							)  GROUP  BY b .`valor` ) 
		ELSE d . _
					`valor`
		 END `valor` FROM tabeba_extracao e LEFT JOIN financeiro_proc . tbldadConversaoMoeda d ON e . `DT` = d . `data_do_dado`
	 AND e . `origem` = d . `origem`
	 AND e .`destino` = d . `destino`
	 AND e . `cb` = d . `cb` ;

#spark #sql

 

lucasrocha
Databricks Employee
Databricks Employee

Olá @opl12 , tudo bem?

Se possível, poderia enviar a mensagem de erro completa?
Aparecerá uma lista separada por vírgulas de possíveis colunas logo após "Did you mean one of the following? [...]".
Poderia testar sem os `` e me informar o resultado?

Best regards,
Lucas Rocha