首页 文章

SQL sum语句invaild标识符

提问于
浏览
1

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

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:无效标识符”

1 回答

  • 0

    要执行您描述的操作,您只需要一个相关的子查询:

    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 ) . 但是,如果你修复了它,你就会遇到其他问题,例如标量子查询返回太多行 .

相关问题