Недопустимый идентификатор MONTH в Oracle - PullRequest
0 голосов
/ 02 декабря 2019

Все ингредиенты приобретены в ноябре. Отобразите идентификатор ингредиента, название, заказанную дату, количество и единицу (в одном столбце), цену за единицу и общую сумму для каждого элемента. Упорядочить результат по убыванию даты заказа. Подсказка: общая сумма - это количество, умноженное на цену за единицу.

SELECT ingredient_id, ingredient_name, date_ordered, "Quantity & Unit" AS Quantity,
unit_price * quantity AS "Total Amount"
FROM ingredient
WHERE MONTH (date_ordered) = 11
ORDER BY 'date_ordered' DESC;

Он постоянно говорит, что МЕСЯЦ недопустимый идентификатор.

Ответы [ 2 ]

2 голосов
/ 02 декабря 2019

В вашем коде есть несколько проблем:

  • MONTH не является допустимой функцией в oracle
  • 'date_ordered' недопустимо, так как одинарные кавычки недопустимы для имен столбцов.

Ваш код должен выглядеть следующим образом:

SELECT ingredient_id, ingredient_name, date_ordered, "Quantity & Unit" AS Quantity,
unit_price * quantity AS "Total Amount"
FROM ingredient
WHERE extract (MONTH from date_ordered) = 11 -- used extract function
ORDER BY date_ordered DESC; -- removed single quotes

Также обратите внимание, что этот запрос выдаст все записи за ноябрьский месяц независимо от года.

Ура !!

1 голос
/ 02 декабря 2019

использование extract() функция

SELECT ingredient_id, ingredient_name, date_ordered, "Quantity & Unit" AS Quantity, unit_price * quantity AS "Total Amount" FROM ingredient WHERE extract(month from date_ordered) = 11 ORDER BY 'date_ordered' DESC;

Другой вариант также заключается в использовании.

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