2016-03-13 5 views
1

Я пытаюсь обновить столбец общего количества в каждом заказе, используя запрос,SQL идентификатор заявление сумма invaild

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 Error: ORA-00904: "L_QUANTITY": invalid identifier
00904. 00000 - "%s: invalid identifier"

+1

Вы используете MySQL или Oracle? Пожалуйста, отметьте свой вопрос соответствующим образом. –

+0

orcale sql, извините, я смутился. – user1579414

ответ

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). Но если вы исправили это, у вас были бы другие проблемы, такие как скалярный подзапрос, возвращающий слишком много строк.

+0

спасибо большое, это помогает :) – user1579414