【问题标题】:SQL error with nested SELECT嵌套 SELECT 的 SQL 错误
【发布时间】:2013-12-17 00:49:36
【问题描述】:

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

我正在尝试使用以下信息更新“订单”表,但是仅通过文本框提供 1 件商品的价格,并且我正在尝试使用已订购的数量来计算总订单价值在这个表中。

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

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

【问题讨论】:

  • 这与您的子查询无关。这可能与[orders] 不是表有关,或者至少不是可更新的表。

标签: sql vb.net ms-access


【解决方案1】:

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

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

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

【讨论】:

  • 您的查询未指定quantity 的来源。
  • 哦,所以我仍然可以使用数量的值,即使在查询中根本没有选择它?我刚刚尝试了该代码,但仍然出现相同的错误。
  • @darkjoe31 代码应该可以工作,表的定义是什么?
  • @Sklivvz 啊,我没看到,我是知觉盲:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多