连接表,其中1值不必相同

时间:2017-07-14 10:20:02

标签: sql-server left-join

我需要在SQL Server 2014中加入下面的两个表,我使用了以下代码,但我的问题是Sales_org不匹配的地方。如果它不匹配,它应该返回一个基于Material而不是Sales Organization的值。 它为0的原因是两个国家都是一样的。

Left Join 
[Z_PACKING] on [CTE_OPMAO2].[Material] = [Z_PACKING].[Material number]
AND
[CTE_OPMAO2].[Sales_org] = [Z_PACKING].[Sales Organization]

我尝试使用“OR”但卡住了。

[CTE_OPMAO2]
 ==============

Sales_org |   Material                           

2110      |    005013K                 
2190      |    036060J                 
2190      |    036280J                 
2190      |    036353J
2110      |    037380K
2110      |    037740K

[Z_Packing]
 ==============

Sales_org |    Material number   |    Packaging                    

2110      |    005013K           |       PC      
2190      |    036060J           |       PAC    
2190      |    036280J           |       CAR   
0         |    036353J           |       PC
0         |    037380K           |       PC
0         |    037740K           |       PC

1 个答案:

答案 0 :(得分:0)

我不确定你为什么有股票,忘了()?

select *
from CTE_OPMAO2
Left Join [Z_PACKING] on [CTE_OPMAO2].[Material] = [Z_PACKING].[Material number] 
AND ([CTE_OPMAO2].[Sales_org] = [Z_PACKING].[Sales Organization] 
     or [Z_PACKING].[Sales Organization] = 0)