Большинство серверов баз данных имеют функцию COALESCE , которая возвращает первый ненулевой аргумент, поэтому следующие действия должны выполнять то, что вы хотите:
SELECT COALESCE(SUM(Price),0) AS TotalPrice
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate)
[править]
Просто чтобы прояснить ситуацию, так как, похоже, много спорят о том, что "COALESCE / ISNULL будет по-прежнему возвращать NULL, если не найдено ни одной строки", попробуйте этот запрос, который вы можете скопировать и вставить в SQL Server напрямую как есть:
SELECT coalesce(SUM(column_id),0) AS TotalPrice
FROM sys.columns
WHERE (object_id BETWEEN -1 AND -2)
Обратите внимание, что предложение where исключает из рассмотрения все строки из sys.columns, но оператор sum по-прежнему приводит к возвращению единственной строки, равной NULL, которая объединяет исправления в одну строку с 0.
Надеюсь, это поможет объяснить это.