嵌套SELECT的SQL错误

时间:2013-12-17 00:49:36

标签: sql vb.net ms-access

错误是“操作必须使用可更新的查询”。

我正在尝试使用以下信息更新'订单'表,但是只有1项的价格将通过文本框提供,我试图使用订购数量计算总订单价值,这已经是在这张桌子里。

以下代码包含从变量中获取的数据。 2%的“VAT = 2”和“price = 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'

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

1 个答案:

答案 0 :(得分:2)

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

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

请注意,对于分数,最好先乘以后再划分。