2012-11-02 180 views
1

我有一個select語句,我希望根據表中的其他值計算立方體體積。不過,我想檢查pr.Length_mm或pr.Width_mm或pr.Height_mm是否爲NULL。我查看了CASE語句,但它似乎只是一次評估一列。選擇查詢的多個條件

SELECT 
     sa.OrderName, 
     sa.OrderType, 
     pr.Volume_UOM 
,pr.Length_mm*pr.Width_mm*pr.Height_mm AS Volume_Cubic 
,pr.Length_mm*pr.Width_mm AS Volume_Floor 
,pr.Length_mm 
,pr.Height_mm 
,pr.Width_mm 
FROM CostToServe_MCB.staging.Sale sa 
LEFT JOIN staging.Product pr 
ON sa.ID = pr.ID 
+1

你爲什麼左側的接合部在這裏? 'LEFT JOIN'-ing,然後在右邊的表上使用'IS NOT NULL'似乎毫無意義。所有通過使用左連接而不是內連接保留的行在所有「pr」列中都有「NULL」。 –

+0

@MartinSmith我認爲你是對的,但你不能把條件加入連接嗎?檢查我更新的答案。 –

+0

這是完整查詢的子集。還有其他的欄目,我需要帶入,其中可能不是右桌的一部分。 – stats101

回答

2
SELECT pr.Volume_UOM 
,pr.Length_mm*pr.Width_mm*pr.Height_mm AS Volume_Cubic 
,pr.Length_mm*pr.Width_mm AS Volume_Floor 
,pr.Length_mm 
,pr.Height_mm 
,pr.Width_mm 
FROM CostToServe_MCB.staging.Sale sa 
LEFT JOIN staging.Product pr 
ON sa.ID = pr.ID 
and pr.Length_mm is not null 
and pr.Width_mm is not null 
and pr.Height_mm is not null 
2
SELECT pr.Volume_UOM 
,pr.Length_mm*pr.Width_mm*pr.Height_mm AS Volume_Cubic 
,pr.Length_mm*pr.Width_mm AS Volume_Floor 
,pr.Length_mm 
,pr.Height_mm 
,pr.Width_mm 
FROM CostToServe_MCB.staging.Sale sa 
    LEFT JOIN staging.Product pr ON sa.ID = pr.ID 
where pr.Length_mm is not null and pr.Width_mm is not null and pr.Height_mm is not null 
+0

對不起,我提出的查詢並不完全代表我正在使用的查詢。它包含許多其他列。以上答案限制了3個值的結果。 – stats101

0
where pr.Length_mm is not null 
    and pr.Width_mm is not null 
    and pr.Height_mm is not NULL