Usuário com melhor resposta
select retornando NULL pois um dado não é igual como tratar isso

Pergunta
-
Bom dia...! Será que alguém pode me ajudar por favor... Tenho o select abaixo e o que acontece é o seguinte, o campo(ntc.Operacao) que declarei para exibição está retornando o valor 'NULL', pois no relacionamento entre as tabelas NFISCALITEM AS nfi com NATTRIBUTACAOCLAS AS ntc ( nfi.ClasFiscal = ntc.ClasFiscal ) os valores dos dois campos tem que ser iguais para retornar o valor ok, até ai beleza. Por causa de uma tratativa do ERP não é necessário cadastrar as classificações fiscais de todos os produtos se utilizar uma CFOP padrão(EX:5.102), cadastra-se somente uma classificação também padrão('0000.00.00'). E como a classificação do item da nota é (EX: '3917.40.90') e no cadastro de classificação esta cadastrado somente a padrão('0000.00.00') sendo diferente do item da nota, fazendo o select retornar 'NULL'. Tentei tratar com o condicional(CASE) mas não esta rolando. agradeço desde já qualquer ajuda prestada...!
============================
SELECT
(CASE
WHEN
nfi.ClasFiscal <> ntc.ClasFiscal
THEN
ntc.Operacao
WHEN
nfi.ClasFiscal = ntc.ClasFiscal
THEN
ntc.Operacao
END)
AS Operacao
FROM
NFiscal nf INNER JOIN NFiscalItem nfi
ON nf.Empresa = nfi.Empresa AND
nf.Filial = nfi.Filial AND
nf.Cgcemissor = nfi.Cgcemissor AND
nf.Series = nfi.Serie AND
nf.NumNF = nfi.NumNF LEFT OUTER JOIN
NatTributacao nt
ON nfi.NOPER = nt.Noper AND
nfi.Codtributo = nt.CodTributo AND
nf.EstTrib = nt.UfDestino LEFT OUTER JOIN
NatTributacaoClas ntc
ON nt.Noper = ntc.Noper AND
nt.UfOrigem = ntc.UfOrigem AND
nt.UfDestino = ntc.UfDestino AND
nt.CodTributo = ntc.CodTributo AND--==É POR CAUSA DESSE NESSE RELACIONAMENTO QUE RETORNA 'NULL', POIS OS VALORES NÃO SÃO IGUAIS==
nfi.ClasFiscal = ntc.ClasFiscal
==============================
Respostas
-
Deleted
- Sugerido como Resposta Giovani Cr quinta-feira, 17 de outubro de 2013 12:50
- Marcado como Resposta Giovani Cr terça-feira, 22 de outubro de 2013 13:03
Todas as Respostas
-
Boa tarde,
Gilguitar, qual valor deve ser retornado no lugar do Null nesses casos?
Assinatura: http://www.imoveisemexposicao.com.br
-
O valor do campo Operacao é a CST(Código da Situacao tributária) da classificação Fiscal, (EX: '00' = Tributado integralmente).
Noper | UfOrigem | UfDestino | CodTributo | ClasFiscal | Operacao
5.102 | SP | SP | 01 | 0000.00.00 | 00
Deve-se retornar no select o valor = '00' do campo Operacao, mas como a classificação do item é diferente é retornado 'NULL'.
gapimex - Grato...!
-
O '00' pode ficar fixo? Se pode experimente dessa forma:
select coalesce(ntc.operacao, '00') as Operacao from -- ...
Espero que ajude.Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta Durval RamosModerator terça-feira, 15 de outubro de 2013 20:24
-
-
-
Deleted
- Sugerido como Resposta Giovani Cr quinta-feira, 17 de outubro de 2013 12:50
- Marcado como Resposta Giovani Cr terça-feira, 22 de outubro de 2013 13:03