Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

L'unione di più tabelle restituisce il valore NULL

Questo perché null su entrambi i lati dell'operatore di addizione produrrà un risultato di null . Puoi utilizzare ISNULL(LiabilityPremium, 0) Esempio:

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

oppure puoi usare COALESCE invece di ISNULL .

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

Modifica

Non sono sicuro se questa è una coincidenza con questo piccolo set di dati o se è prevista, ma se è sempre previsto che sia @LiabilityPremium.LiabilityPremium o @HiredPremium.LiabilityPremium sarà sempre nullo, quindi non è necessario eseguire l'addizione. Usa invece COALESCE direttamente su quelle 2 colonne.

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