При отладке этого запроса вы, скорее всего, столкнетесь с несколькими (разными) сообщениями об ошибках. Также: написание запросов без таблиц / данных может быть немного сложнее, так как некоторые аспекты легко упускаются из виду. Таким образом, мы будем использовать несколько тестовых таблиц (включая данные), см. dbfiddle здесь .
Приведенный ниже код запроса покажет вам различные ошибки, которые вы можете увидеть, и SQL, необходимый для их исправления. Прочитайте все комментарии в коде.
Реляционная модель (имена столбцов id сокращены)

ORA-00903: неверное имя таблицы
В исходном запросе вы используете таблицу ORDER. ЗАКАЗ - зарезервированное слово, см. документация . Не используйте его при именовании таблиц.
ORA-00937: не групповая функция для одной группы
При использовании правильного имени таблицы мы можем выполнить запрос. Добавьте условие в предложение WHERE (см. Ниже). Из-за SUM () в предложениях SELECT и ORDER BY мы получаем сообщение об ошибке. По-видимому, нам нужно добавить в запрос предложение GROUP BY (что сразу приводит к следующему сообщению об ошибке ...)
SELECT
c.fn AS "First Name",
c.email AS "Email",
p.productName AS "Product Name",
SUM(p.unitsInStock) + SUM(p.unitsonorder) AS "Total Units" --<- ORA-00937
FROM customer c
JOIN orders o ON c.id = o.id -- table name fixed
JOIN orderLine l ON o.id = l.orderid
JOIN product p ON l.productCode = p.code
WHERE p.DISCONTINUED = 'N' --<- condition
ORDER BY SUM(p.unitsInStock) + SUM(p.unitsonorder) --<- ORA-00937
;
-- ORA-00937: not a single-group group function
--
-- Cause: A SELECT list cannot include both a group function,
-- such as AVG, COUNT, MAX, MIN, SUM, STDDEV, or VARIANCE,
-- and an individual column expression,
-- unless the individual column expression is included in a GROUP BY clause.
-- see:
-- https://docs.oracle.com/cd/B10501_01/server.920/a96525/e900.htm
ORA-00979: не выражение GROUP BY
SELECT
c.fn AS "First Name",
c.email AS "Email",
p.productName AS "Product Name",
SUM(p.unitsInStock) + SUM(p.unitsonorder) AS "Total Units"
FROM customer c
JOIN orders o ON c.id = o.id
JOIN orderLine l ON o.id = l.orderid
JOIN product p ON l.productCode = p.code
WHERE p.DISCONTINUED = 'N'
group by p.productname --<- causes ORA-00979
ORDER BY SUM(p.unitsInStock) + SUM(p.unitsonorder)
;
-- ORA-00979: not a GROUP BY expression
--
-- Make sure that columns ( listed in the SELECT clause ) that are _not_ "aggregated"
-- are listed in the GROUP BY clause, otherwise you may get an ORA-00937.
Запрос работает - строки не выбраны!
SELECT
c.fn AS "First Name",
c.email AS "Email",
p.productName AS "Product Name",
SUM(p.unitsInStock) + SUM(p.unitsonorder) AS "Total Units"
FROM customer c
JOIN orders o ON c.id = o.id
JOIN orderLine l ON o.id = l.orderid
JOIN product p ON l.productCode = p.code
WHERE p.DISCONTINUED = 'N'
group by p.productname, c.fn, c.email
ORDER BY SUM(p.unitsInStock) + SUM(p.unitsonorder)
;
-- result
no rows selected
Последние штрихи
SELECT
c.fn AS "First Name",
c.email AS "Email",
p.productName AS "Product Name",
SUM(p.unitsInStock) + SUM(p.unitsonorder) AS "Total Units"
FROM customer C
JOIN orders O ON C.id = O.customerid --<- JOIN condition amended
JOIN orderLine L ON O.id = L.orderid
JOIN product P ON L.productCode = P.code
WHERE p.DISCONTINUED = 'N'
group by p.productname, c.fn, c.email
ORDER BY "Total Units" --<- you can use the column alias here - instead of SUM(...)
fetch first 10 rows only -- optional
;
-- result
First Name Email Product Name Total Units
Annnora agrime3@hc360.com Beans 117
Arleen adahlback5@sciencedaily.com Beans 117
Gwendolin gwalder0@unblog.fr Beans 117
Tomkin tdeignan2@eepurl.com Beans 117
Alard aaimeric9@cyberchimps.com Beans 117
Jeremiah jolland4@dagondesign.com Beans 117
Melita meason8@cnbc.com Beans 117
Stanwood slanphere6@walmart.com Beans 117
Bobbi bfireman1@bbb.org Beans 117
Idelle ililly7@pen.io Beans 117
10 rows selected.
Обратите внимание, что вы можете построить запрос, не вставив предварительно строки в таблицы (см. dbfiddle ). Возможно, вам необходимо настроить логику (и т. Д.), Чтобы запрос точно соответствовал требованиям.