Ошибки в SQL-запросе

Условие:

исправить

Условие: исправить

Решение:

Определение предмета и раздела

Предмет: Базы данных
Раздел: SQL, работа с запросами (JOIN, фильтрация по дате)

Ошибки в SQL-запросе

  1. В SELECT необходимо явно указать таблицы перед полями, чтобы избежать неоднозначности.
  2. В WHERE отсутствует фильтр по конкретному лекарству.
  3. CURDATE0() — ошибка, правильная функция CURDATE().

Исправленный SQL-запрос

SELECT Лекарства.название, Продажи.дата_продажи, Продажи.цена_продажи
FROM Лекарства 
INNER JOIN Продажи ON Лекарства.код_лекарства = Продажи.код_лекарства
WHERE Продажи.дата_продажи >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH) 
AND Лекарства.название = 'Название_лекарства';

Пояснение исправлений

  • Добавлен фильтр AND Лекарства.название = 'Название_лекарства', чтобы выбрать конкретное лекарство.
  • Удалена ошибка CURDATE0(), заменена на CURDATE().
  • Явно указаны таблицы перед полями (Лекарства.название, Продажи.дата_продажи, Продажи.цена_продажи).
  • DATE_SUB(CURDATE(), INTERVAL 1 MONTH) корректно вычисляет дату месяц назад.

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

Не нашли нужного вам решения? Оставьте заявку и наши авторы быстро и качественно помогут вам с решением.
Оставить заявку
Работа вам нужна срочно. Не волнуйтесь, уложимся!
  • 22423 авторов готовы помочь тебе.
  • 2402 онлайн