0

在我们的组织中,我们有一个中央采购公司 (CPC),然后通过内部公司采购订单向我们的零售公司 (Company_X) 销售产品,然后再向客户销售产品。我需要做的是将我们的零售销售链接回原始采购订单。

例如,我有一个表,其中包含以下内容(以及许多其他列):

Company_X_Sales

InterCO_PO_no  Sales_Order_No  Part_No  Qty
-------------  --------------  -------  ---
12345          98765           ABCD     10

然后我有一个表,其中包含以下内容:

CPC_Sales

PO_Number  InterCO_SO_No  Part_No  Qty
---------  -------------  -------  ---
00015      12345          ABCD     5  
00012      12345          ABCD     2  
00009      12345          ABCD     4   
00007      12345          ABCD     3 

因此,您可以看到 10 件商品的最终销售是由来自中央公司中超过 1 个外部 PO 的零件组成的。

我需要能够做的是复制中的行Company_X_Sales,包括原始采购订单号并设置数量为CPC_Sales

我需要得到这样的结果:

Company_X_Sales_EXTD

PO_Number  InterCO_PO_no  Sales_Order_No  Part_No  Qty
---------  -------------  --------------  -------  ---
00007      12345          98765           ABCD     3
00009      12345          98765           ABCD     4
00012      12345          98765           ABCD     2
00015      12345          98765           ABCD     1

我必须使用Company_X_Sales作为我的驱动表 - 这CPC_Sales只是作为一个查找来导出原始采购订单号。

希望你能帮助我在整个周末工作,因为它是一项具有非常激进的时间表的工作的一部分。

我不介意该解决方案是否需要不止一次通过表或在需要时创建视图。我真的很挣扎。

4

2 回答 2

0

我对你的问题有点困惑,但听起来你正试图让你的 Company_X_Sales 表有 3 行而不是 1 行,只是数量不同?如果是这样,这样的事情应该可以工作:

SELECT S.PO_Number, C.InterCO_PO_no, C.Sales_Order_No, C.Part_No, S.Qty
FROM Company_X_Sales C
   JOIN CPC_Sales S ON C.InterCO_PO_no = S.InterCO_SO_No

这是SQL 小提琴

这将为您提供正确数量的 4 行。然后您可以相应地删除并重新插入。

要将这些行放入表中,您有几个选项,但这样的事情应该有效:

--Flag the rows for deletion
UPDATE Company_X_Sales SET Qty = -1 -- Or some arbitrary value that does not exist in the table

--Insert new correct rows
INSERT INTO Company_X_Sales 
SELECT C.InterCO_PO_no, C.Sales_Order_No, C.Part_No, S.Qty
FROM Company_X_Sales C
   JOIN CPC_Sales S ON C.InterCO_PO_no = S.InterCO_SO_No

--Cleanup flagged rows for deletion
DELETE FROM Company_X_Sales  WHERE Qty = -1

祝你好运。

于 2013-01-26T19:54:40.177 回答
0
select [PO_Number],[InterCO_SO_No], Company_X_Sales.Sales_Order_No, [Part_No],[Qty] from CPC_Sales inner join Company_X_Sales on Company_X_Sales.InterCO_PO_no = CPC_Sales.InterCO_SO_no

两个表上的简单内部连接将为您提供所需的结果恕我直言。

于 2013-01-26T20:13:46.537 回答