sql >> Base de Datos >  >> RDS >> Sqlserver

Unirse a varias tablas devuelve un valor NULL

Eso es porque null a ambos lados del operador de suma dará como resultado null . Puede usar ISNULL(LiabilityPremium, 0) Ejemplo:

ISNULL(l.LiabilityPremium,0) + ISNULL(h.LiabilityPremium,0) as LiabilityPremium

o puedes usar COALESCE en lugar de ISNULL .

COALESCE(l.LiabilityPremium,0) + COALESCE(h.LiabilityPremium,0) as LiabilityPremium

Editar

No estoy seguro de si esto es una coincidencia con este pequeño conjunto de datos o si es esperado, pero si siempre se espera que @LiabilityPremium.LiabilityPremium o @HiredPremium.LiabilityPremium siempre será nulo, entonces no hay necesidad de realizar la suma. En su lugar, use COALESCE directamente en esas 2 columnas.

COALESCE(l.LiabilityPremium, h.LiabilityPremium) as LiabilityPremium