我有2個不同系統的數據庫。 EDI系統和ERP系統如下T-SQL從另一個數據庫中查找丟失的項目
我想知道所有不在ErpOrderItem表中EDI系統訂單表
A. EDI System
Order
----
1. OrderId
2. OrderDate
OrderItems
---------
1. OrderItemId
2. OrderId
3. ProductId
Order_Erp
------
1. OrderId
2. ErpDocNum
ERP System
ErpOrder
-------
1. ErpDocNum
2. DocEntry
ErpOrderItem
----
1. DocEntry
2. ProductId
所有訂單的產品編號例如,我想知道OrderItem中的所有項目在ErpOrderItem中對於通過訂單關鍵字和ErpDocNum鏈接的訂單不可用。這兩個系統通過Order_Erp中的ErpDocNum鏈接起來
我已經嘗試了以下方法,但它沒有給出我之後的結果。
select * from edi.Orders ODR
INNER JOIN edi.Order_Erp ERDR ON ODR.OrderId = ERDR.OrderId
INNER JOIN edi.OrdersItems ODRL ON ODR.OrderId = ODRL.OrderId
INNER JOIN ErpOrder ON ERDR.ErpDocNum = ErpOrder.ErpDocNum
INNER JOIN ErpOrderItem ON ErpOrder.DocEntry = ErpOrderItem.DocEntry
where ErpOrder.ProductId != ODRL.Productid collate SQL_Latin1_General_CP1_CI_AS
您需要'outer join'或'except'來找到缺失的項目。 – adrianm