Sql 使用聚合函数更新并选择
我正在尝试编写一条SQL指令,该指令将更新我的数据库库存产品数量,该数量与所有交货和订单的总数相关Sql 使用聚合函数更新并选择,sql,ms-access,Sql,Ms Access,我正在尝试编写一条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) A
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 P
SET P.Quantity = Q.Quantity
FROM tbl_Product P
INNER JOIN (...) as Q
ON Q.IdProduct = P.IdProduct;
尝试为正在更新的表指定昵称。下面是您的代码,子查询已抽象。这有用吗
UPDATE P
SET P.Quantity = Q.Quantity
FROM tbl_Product P
INNER JOIN (...) as Q
ON Q.IdProduct = P.IdProduct;
从中删除,最后移动集合
从
中删除,最后移动集。Access SQL不支持您尝试使用的语法。询问
更新foo
设置foo.thing=bar.thing
从…起
福
内连接
酒吧
ON foo.ID=bar.ID
结果查询表达式中出现“语法错误(缺少运算符)”
Access SQL中的相应查询将是
更新
福
内连接
酒吧
ON foo.ID=bar.ID
设置foo.thing=bar.thing
Access SQL不支持您尝试使用的语法。询问
更新foo
设置foo.thing=bar.thing
从…起
福
内连接
酒吧
ON foo.ID=bar.ID
结果查询表达式中出现“语法错误(缺少运算符)”
Access SQL中的相应查询将是
更新
福
内连接
酒吧
ON foo.ID=bar.ID
设置foo.thing=bar.thing
通过使用连接的更新
访问可能会很挑剔。在某些情况下,它可能会抱怨查询是只读的。由于您的更新
使用了与分组依据
的联接,因此可能会在此处发生这种情况
如果是,可以使用<代码> DSum < /COD>。因此Access会认为您的查询是可编辑的。如果IdProduct是数字数据类型,请使用此
将tbl_产品更新为p
设置p.数量=
DSum(“数量”、“待交货”、“IdProduct=”和p.IdProduct)
-DSum(“数量”、“待交货订单”、“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 & "'")
通过使用联接的更新
访问可能会很挑剔。在某些情况下,它可能会抱怨查询是只读的。由于您的更新
使用了与分组依据
的联接,因此可能会在此处发生这种情况
如果是,可以使用<代码> DSum < /COD>。因此Access会认为您的查询是可编辑的。如果IdProduct是数字数据类型,请使用此
将tbl_产品更新为p
设置p.数量=
DSum(“数量”、“待交货”、“IdProduct=”和p.IdProduct)
-DSum(“数量”、“待交货订单”、“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 & "'")
你能发布你的错误声明吗?你能发布你的错误声明吗?