Como tratar coluna que não existe no join
Amigos,
Tenho o seguinte problema: Preciso fazer um join de uma tabela que contém valores, estes valores podem estar em outra moeda, com isso tenho de ir na tabela de COTACOES e buscar a cotação do dia do lançamento. Até ai tudo bem, o problema é que existem dias em que não existe cotação, ou melhor, não existe registro, dai meus CASEs não conseguem fazer a comparação e não trazem nada!
Alguém poderia me dar uma direção, por favor>
Select CCR.grupos,CCR.contas,
CASE WHEN CCR.Opers='D' THEN CCR.Valors * 1
ELSE CCR.Valors * - 1
END AS lnValorGrupoMoeda, CCR.moedas, CCR.cotacaos, CCR.Opers, CCR.Datas as DtDatas,
CCR.Vencs as DtVencs,
"lnValorCotacao" =
CASE
WHEN dCOT.valos = NULL and CCR.Opers='D' THEN (CCR.Valors * 1 )
WHEN dCOT.valos = NULL and CCR.Opers<>'D' THEN (CCR.Valors * -1 )
WHEN dCOT.valos > 0 and CCR.Opers='D' THEN (((CCR.Valors * 1) * 100)/ dCOT.valos)
WHEN dCOT.valos > 0 and CCR.Opers<>'D' THEN (((CCR.Valors * -1) * 100)/ dCOT.valos)
END,
dCOT.valos
From sigmvccr CCR
left join SigCdCot dCOT on dCOT.datas = CCR.Vencs
Where Vencs BetWeen '20140101' And '20140102'
and grupos = '5114'
Order By Moedas,Vencs
Vejam que nos 2 primeiros When é que esta o problema, porque o dCOT.valos nunca vai ser NULL, porque ele não existe!
Discussão (10)
Carregando comentários...