Просмотр с группировкой по причинам неверный идентификатор на псевдоним AVG - PullRequest
0 голосов
/ 06 ноября 2018

Oracle говорит, что у меня неверный идентификатор, я смотрел на другие решения, в которых говорилось, что инкапсулировать в подзапрос, но я пока не могу заставить это работать. Я думаю, что объединение может иметь к этому какое-то отношение.

Я пытаюсь создать представление, отображающее имена поставщиков и для каждого поставщика среднее количество времени между моментом создания и оплаты счета-фактуры (у каждого поставщика есть несколько счетов-фактур), но только если это среднее значение больше или равен 1,5. Затем я должен отсортировать список в порядке убывания по этому среднему.

CREATE OR REPLACE VIEW Vend_Date_Avgs AS
SELECT V.Vendor_Name, AVG(I.Invoice_Due_Date - I.Invoice_Date) AS Avg_Between
FROM Vendors V, Invoices I
WHERE V.Vendor_ID = I.Vendor_ID
GROUP BY V.Vendor_Name
HAVING Avg_Between >= 1.5
ORDER BY Avg_Between DESC;

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 06 ноября 2018

Oracle не распознает псевдонимы столбцов в предложении having:

CREATE OR REPLACE VIEW Vend_Date_Avgs AS
    SELECT V.Vendor_Name, AVG(I.Invoice_Due_Date - I.Invoice_Date) AS Avg_Between
    FROM Vendors V JOIN
         Invoices I
         ON V.Vendor_ID = I.Vendor_ID
    GROUP BY V.Vendor_Name
    HAVING AVG(I.Invoice_Due_Date - I.Invoice_Date) >= 1.5
    ORDER BY AVG(I.Invoice_Due_Date - I.Invoice_Date) DESC;

Обратите внимание на использование правильного синтаксиса JOIN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...