加入其中1值不必相同的表格
我需要在SQL Server 2014中加入下面两个表格,我使用了下面的代码,但是我的问题是Sales_org不匹配。如果它不匹配,它应该返回一个基于Material而不是Sales Organization的值。 它是0的原因是两个国家都是一样的。加入其中1值不必相同的表格
Left Join
[Z_PACKING] on [CTE_OPMAO2].[Material] = [Z_PACKING].[Material number]
AND
[CTE_OPMAO2].[Sales_org] = [Z_PACKING].[Sales Organization]
我试过使用“或”但卡住了。
[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
我不知道你为什么拿到股票,忘了()?
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)
嗨感谢您的信息,我试过了,它工作,但我从72154记录到72305,这对我来说没有任何意义,考虑到左连接应保持原始行完好无损。 –
左连接的记录数不会比左表的少,但可以有更多。在Zpacking中,您可能有重复的材料。你可以在你的表上添加一个约束来防止这种情况的发生。 – Peter
谢谢,显然有重复,不应该在那里,问题解决! –
请提供全选择查询 –
SELECT * FROM CTE_OPMAO2左加入[Z_PACKING]对[CTE_OPMAO2]。[材料] = [Z_PACKING]。[物料编号]和[CTE_OPMAO2]。[Sales_org] = [Z_PACKING ] [销售组织] –