Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用聚合函数更新并选择_Sql_Ms Access - Fatal编程技术网

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

我正在尝试编写一条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 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 & "'")

你能发布你的错误声明吗?你能发布你的错误声明吗?