c# - 添加新购买时,我想在另一个表中更新数量
问题描述
我有 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汇总数量。
请帮我解决这个问题。谢谢 !
解决方案
你应该这样做:
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;
我希望它有所帮助。
推荐阅读
- timestamp - Google App Maker 时区时间戳不使用用户设备信息
- javascript - 当字符串存在于数组中时如何为replace()提供输入
- css - 让svg在悬停时正确旋转
- c# - 如何编写 azure b2c 应用程序创建脚本
- python - 赋值前引用的错误局部变量
- java - “扩展”实际上是做什么的?
- python - 用json导入导出csv
- html - 如何提取向下滚动时进一步加载的完整表格?
- nan - 处理实时输出时的 NaN 问题
- firebase - React Native - 模块 RCTEventEmitter 不是注册的可调用模块(调用 receiveTouches)