2015-11-16 72 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