Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

A junção de várias tabelas retorna o valor NULL


Isso porque null em ambos os lados do operador de adição produzirá um resultado de null . Você pode usar ISNULL(LiabilityPremium, 0) Exemplo:
ISNULL(l.LiabilityPremium,0) + ISNULL(h.LiabilityPremium,0) as LiabilityPremium

ou você pode usar COALESCE em vez de ISNULL .
COALESCE(l.LiabilityPremium,0) + COALESCE(h.LiabilityPremium,0) as LiabilityPremium

Editar


Não tenho certeza se isso é coincidência com este pequeno conjunto de dados ou esperado, mas se é sempre esperado que @LiabilityPremium.LiabilityPremium ou @HiredPremium.LiabilityPremium será sempre nulo, então não há necessidade de realizar a adição. Em vez disso, use COALESCE diretamente nessas 2 colunas.
COALESCE(l.LiabilityPremium, h.LiabilityPremium) as LiabilityPremium