我有三個表,我有領域 - area
。所以我決定爲每張桌子找一些區域並在一個視圖中顯示。顯示NULL和值
我創建了一個查詢
select sum(x.area) as EquipmentSpace,sum(y.area) as ProductSpace,sum(z.area) as ShoppointSpace
from TEquipWarehouse as x,TProductWarehouse as y,TShopPoint as z
然而,當一個表沒有任何記錄 - 每場的結果是NULL
。
如何解決這個問題?
select sum(ISNULL(x.area,0)) as EquipmentSpace,sum(ISNULL(y.area,0)) as ProductSpace,sum(ISNULL(z.area,0)) as ShoppointSpace
from TEquipWarehouse as x,TProductWarehouse as y,TShopPoint as z
在這種情況下,如果值不存在,你將其代0您SUM的目的:
這修復了原始示例的幾個問題。行不會多次計數,並且缺少行的單個表對其他表沒有影響。對於缺少行的單個表,您將得到空值。 – joshp
我已經使用IsNull爲每個子查詢 – lapots
當只有2個參數時,'ISNULL()'和'COALESCE()'做同樣的事情,所以可以使用它。 COALESCE與超過2個參數一起工作(在您的查詢中不需要)。 –