Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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_Vb.net_Ms Access - Fatal编程技术网

嵌套选择的SQL错误

嵌套选择的SQL错误,sql,vb.net,ms-access,Sql,Vb.net,Ms Access,错误为“操作必须使用可更新查询” 我正在尝试使用以下信息更新“订单”表,但是只有一个项目的价格将通过文本框提供,并且我正在尝试使用订购数量计算总订单价值,该数量已在该表中 下面的代码包括从变量中获取的数据。其中2英寸的“增值税=2”和“价格=2”是一个单位的价格(2.00英镑)。订单总值将存储在“价格”字段中,增值税应使用相同的代码计算,但乘以0.2得出20%的增值税 UPDATE orders SET Invoice_number = 'IN9999', deliver

错误为“操作必须使用可更新查询”

我正在尝试使用以下信息更新“订单”表,但是只有一个项目的价格将通过文本框提供,并且我正在尝试使用订购数量计算总订单价值,该数量已在该表中

下面的代码包括从变量中获取的数据。其中2英寸的“增值税=2”和“价格=2”是一个单位的价格(2.00英镑)。订单总值将存储在“价格”字段中,增值税应使用相同的代码计算,但乘以0.2得出20%的增值税

UPDATE orders 
   SET Invoice_number = 'IN9999', 
       delivery_note_number = 'DN6000', 
       price =2 *
        (SELECT quantity 
           FROM orders 
          WHERE purchase_order_number = 'PO7512'
        ), 
       VAT = (2 * 
         (SELECT quantity 
            FROM orders 
           WHERE purchase_order_number = 'PO7512'
         )/100) * 20, 
       shipping = 3 
WHERE purchase_order_number = 'PO7512'

也许我不能这样使用嵌套查询。我不确定,但任何帮助都将不胜感激:)谢谢

您可以在更新中直接访问整个记录,而不是子查询,如下所示:

UPDATE Orders 
   SET Invoice_number = 'IN9999', 
       Delivery_note_number = 'DN6000', 
       Price = 2 * quantity, 
       VAT = (40 * quantity)/100, 
       Shipping = 3 
 WHERE purchase_order_number = 'PO7512'

请注意,对于分数,最好是先乘后除。

您的查询没有指定数量的来源。哦,所以我仍然可以使用数量的值,即使在查询中根本没有选择它?我刚试过那段代码,但还是出现了同样的错误。@darkjoe31代码应该可以工作,表的定义是什么?@Sklivz啊,我没有看到,我的知觉是盲目的:(这与你的子查询无关。它可能与
[orders]
不是一个表,或者至少不是一个可更新的表有关。