Я пытаюсь рассчитать общий объем продаж, полученный от заказов на веб-сайте, в моей базе данных Oracle 12c, а также некоторую информацию о задействованных заказах (их идентификатор, идентификаторы товаров, количество и цена товара), а также отобразить общий объем продаж. Я придумал запрос:
SELECT L.O_ID, L.INV_ID, L.OL_QUANTITY, L.OL_PRICE, SUM(L.OL_QUANTITY * L.OL_PRICE)
FROM ORDERS O, ORDER_LINE L, ORDERSOURCE S
WHERE
S.OS_DESC = 'Web Site'
AND O.OS_ID = S.OS_ID
AND L.O_ID = O.O_ID
GROUP BY L.O_ID, L.INV_ID, L.OL_QUANTITY, L.OL_PRICE;
который отображает идентификатор заказа, идентификатор инвентаря, количество и цену, но также отображает пятый столбец, в котором указана только общая цена для каждой строки (количество * цена), тогда как мне нужна сумма общей цены каждой строки.
Я осмотрелся и увидел рекомендуемый оператор GROUP BY... WITH ROLLUP
, но когда я пытаюсь выполнить его таким образом, я получаю сообщение об ошибке «команда SQL неправильно завершена».
Изменить: была запрошена информация об ошибке. Вот полный текст:
Error starting at line 1 in command:
SELECT L.O_ID, L.INV_ID, L.OL_QUANTITY, L.OL_PRICE, SUM(L.OL_QUANTITY * L.OL_PRICE)
FROM ORDERS O, ORDER_LINE L, ORDERSOURCE S
WHERE
S.OS_DESC = 'Web Site'
AND O.OS_ID = S.OS_ID
AND L.O_ID = O.O_ID
GROUP BY L.O_ID, L.INV_ID, L.OL_QUANTITY, L.OL_PRICE WITH ROLLUP
Error at Command Line:7 Column:54
Error report:
SQL Error: ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action: