TOTAL()
集計関数を使用する SQL クエリがあります。
SELECT
c.Id,
c.Name,
...
b.BatchNumber,
TOTAL(d.OrderedAmount) as TotalOrderedAmount
FROM OrderProducts a
LEFT JOIN WarehouseProducts b ON a.WarehouseProductId = b.Id
...
WHERE a.OrderId = @OrderId
AND (e.Status = @OrderedStatus OR e.Status IS NULL)
(わかりやすくするために不要な行は削除されています)
このクエリは、結果が見つからない場合でも少なくとも 1 つの行を返すため、すべての列が DBNull になります (推測します)。このクエリの結果を DataTable に読み込もうとすると、null 値が原因で ConstraintException が発生します。
TOTAL()
行をに置き換えると0 as TotalOrderedAmount
、返される行数は 0 になり、すべて正常に動作します。
使用してみましWHERE a.Id IS NOT NULL
たが、何を試しても、常に少なくとも 1 つの行が返されるようです。
集計関数を使用しても、製品が見つからない場合に返される行数が 0 になるように、このクエリを変更するにはどうすればよいですか?