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