【问题标题】:SQL sum statement invaild identifierSQL sum 语句无效标识符
【发布时间】:2016-03-13 16:49:58
【问题描述】:

我正在尝试使用查询更新每个订单中的总数量列

update orders 
set total_items = (SELECT L_QUANTITY AS "TOTAL" 
                   FROM 
                       (SELECT o_orderkey, SUM(L_Quantity) AS "TOTAL" 
                        FROM LINEITEM L 
                        JOIN ORDERS O ON O.O_ORDERKEY = L.L_orderkey 
                        WHERE L.L_orderkey > 1 
                        GROUP BY o_orderkey));

Oracle 显示此错误:

SQL 错误:ORA-00904:“L_QUANTITY”:标识符无效
00904. 00000 - "%s: 无效标识符"

【问题讨论】:

  • 您使用的是 MySQL 还是 Oracle?请适当标记您的问题。
  • orcale sql,对不起,我弄糊涂了。

标签: sql oracle


【解决方案1】:

要做你所描述的,你只需要一个相关的子查询:

update orders o
    set total_items = (SELECT SUM(L_Quantity)
                       FROM LINEITEM L
                       WHERE O.O_ORDERKEY = L.L_orderkey AND L.L_orderkey > 1 
                      );

我不确定L.L_Orderkey 的条件应该是什么。

您的特殊问题是因为最里面的子查询没有名为L_QUANTITY 的列(总和称为TOTAL)。但是,如果你解决了这个问题,你就会遇到其他问题,例如标量子查询返回太多行。

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    相关资源
    最近更新 更多