首页 > 解决方案 > 添加新购买时,我想在另一个表中更新数量

问题描述

我有 tblPurchase 表和 tblProductStock 表。当我将新记录添加到 tblPurchase 表时,会自动将该值添加到 tblProduct Stock 表中。没关系。但是当我添加具有相同 ItemCode 数量的新产品时,它将变为 25 + 15 = 40。它也很好。但是仍然没有删除第一条记录。因此在我的 totalStock 表中显示 40 + 15 = 55。那个输出是错误的。我只想得到 40。这个 Total Stock Details 显示错误的输出 40 + 15 = 55。我需要 25 + 15 = 40

我想如果 Itemcode 已经存在于表中,我想更新 Quantity。如果没有任何带有新记录的项目,我想将该数据插入到 tblproductstock 表中。

这是两个表

我想更新该表而不是插入每条新记录。并根据itemcode汇总数量。

这是我添加新购买时自动向 tblProduct Stock 表插入数据的存储过程。

请帮我解决这个问题。谢谢 !

标签: c#sqldatabase

解决方案


你应该这样做:

SELECT MAX(ItemName) ItemName,
   ItemCode,
   SUM(Quantity) Quantity
INTO #tmp
FROM tblPurchase
GROUP BY itemCode;

UPDATE tblProductStock
SET Quantity=#tmp.Quantity
FROM #tmp WHERE tblProductStock.ItemCode=#tmp.ItemCode

INSERT INTO tblProductStock
    (
        ItemName,
        ItemCode,
        Quantity
    )
SELECT  ItemName, ItemCode, Quantity FROM #tmp WHERE ItemCode NOT IN (SELECT ItemCode FROM tblProductStock)

DROP TABLE #tmp;

我希望它有所帮助。


推荐阅读