我正在尝试编写一条 SQL 指令来更新与所有交货和订单总数相关的数据库库存产品数量。
UPDATE tbl_Product
SET tbl_Product.Quantity = Q.Quantity
FROM
tbl_Product
INNER JOIN
(
SELECT tbl_Order.IdProduct,
SUM(tbl_Delivery.Quantity)-SUM(tbl_Order.Quantity) AS Quantity
FROM
tbl_Order
INNER JOIN
tbl_Delivery
ON tbl_Order.IdProduct = tbl_Delivery.IdProduct
GROUP BY tbl_Order.IdProduct
) as Q
ON Q.IdProduct = tbl_Product.IdProduct;
有语法错误。
访问可能会很挑剔UPDATE
它使用连接。在某些情况下,它可能会抱怨查询是只读的。自从你的UPDATE
使用带有 a 的连接GROUP BY
,这可能会发生在这里。
如果是这样,您可以使用DSum
因此 Access 会认为您的查询是可编辑的。如果产品编号是数字数据类型使用这个...
UPDATE tbl_Product AS p
SET p.Quantity =
DSum("Quantity", "tbl_Delivery", "IdProduct=" & p.IdProduct)
- DSum("Quantity", "tbl_Order", "IdProduct=" & p.IdProduct)
但如果是文本类型,请将第三个选项的这些值括在引号中DSum
.
UPDATE tbl_Product AS p
SET p.Quantity =
DSum("Quantity", "tbl_Delivery", "IdProduct='" & p.IdProduct & "'")
- DSum("Quantity", "tbl_Order", "IdProduct='" & p.IdProduct & "'")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)