2015-11-16 74 views
0

加入我有兩個表:左外右表濾波器

航運

ShippedItem Returned 
----------- -------- 
A   NULL 
B   NULL 
C   NULL 
D   Yes 
E   Yes 

返回

ReturnItem Reason 
---------- -------------------- 
D   Not Good 
E   Defect 

我需要編寫一個查詢,這將給航運數量和返回數量(返回qty ie..where return不爲null)基於返回原因。

SQL Fiddle

+0

您的預期結果是什麼? –

回答

0

我不能評論還沒有,但這裏是你的問題了幾個音符。

由於您的表格沒有這些字段,因此您無法返回運輸數量或返回數量。這可能只是你的一個疏忽,這些表格確實有這些領域。

你說你想要一個正確的表格過濾器,但你沒有提到那個過濾器是什麼。

你提到一個左外連接,所以大概你知道如何寫一個。

如果我不得不猜測你的問題是什麼,我會說你想過濾返回表上的某些東西,但仍然得到Shipping表中不在返回表中的所有行。

如果是這樣,那麼您所做的是將您的右表過濾器從WHERE子句移動到JOIN子句中。

SELECT * 
    FROM Shipping 
    LEFT JOIN Returns 
    ON ShippedItem = ReturnItem 
    AND Returns.otherField = Filter here