Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Присъединяването на множество таблици връща стойност NULL

Това е така, защото null от двете страни на оператора за добавяне ще даде резултат null . Можете да използвате ISNULL(LiabilityPremium, 0) Пример:

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

или можете да използвате COALESCE вместо ISNULL .

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

Редактиране

Не съм сигурен дали това е съвпадение с този малък набор от данни или очаквано, но ако винаги се очаква или @LiabilityPremium.LiabilityPremium или @HiredPremium.LiabilityPremium винаги ще бъде нула, тогава няма нужда да се извършва събиране. Вместо това използвайте COALESCE директно върху тези 2 колони.

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Намерете счупени обекти в SQL Server

  2. Как да открием и предотвратим неочакван растеж на базата данни на SQL Server TempDB

  3. Премахване на дублиращи се редове (въз основа на стойности от множество колони) от SQL таблица

  4. Защо моята ODBC връзка се проваля при стартиране на SSIS натоварване във Visual Studio, но не и при изпълнение на същия пакет с помощта на Execute Package Utility

  5. Променете езика по подразбиране за вход в SQL Server