Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Joindre plusieurs tables renvoie la valeur NULL

C'est parce que null de chaque côté de l'opérateur d'addition donnera un résultat de null . Vous pouvez utiliser ISNULL(LiabilityPremium, 0) Exemple :

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

ou vous pouvez utiliser COALESCE au lieu de ISNULL .

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

Modifier

Je ne sais pas si c'est une coïncidence avec ce petit ensemble de données ou attendu mais si on s'attend toujours à ce que soit @LiabilityPremium.LiabilityPremium ou @HiredPremium.LiabilityPremium sera toujours nul alors il n'est pas nécessaire d'effectuer d'addition. Utilisez plutôt COALESCE directement sur ces 2 colonnes.

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