#mysql #sql
Вопрос:
На передней панели моего приложения я создал раскрывающийся список. Я хочу, чтобы раскрывающийся список содержал список всех доступных дат финансового года, которые пользователь может выбрать. Для этого у меня есть 2 таблицы.
Таблица продуктов, содержащая столбец с датой награждения:
--------------
| AwardedDate |
--------------
| 2021-01-07 |
| 2023-01-07 |
| 2026-07-19 |
--------------
И таблица FiscalYear, которая содержит 3 столбца примечаний:
------ ------------ ------------
| Name | StartDate | EndDate |
------ ------------ ------------
| FY15 | 2014-10-01 | 2015-09-30 |
| FY16 | 2015-10-01 | 2016-09-30 |
| FY17 | 2016-10-01 | 2017-09-30 |
| ... | ... | ... |
------ ------------ ------------
Я хочу написать запрос, который просматривает мои продукты по дате их награждения, а затем использует дату начала и дату окончания моей таблицы финансовых лет, чтобы вернуть соответствующее название финансового года.
Например, если моя дата награждения 2016-11-27, запрос должен вернуть 17 ФГ
Я новичок в SQL и попробовал что-то вроде этого:
SELECT fy.Name
FROM Products
LEFT JOIN FiscalYears fy ON
Но я еще не знаю, как сравнивать даты. Спасибо
Ответ №1:
Вы можете использовать BETWEEN
:
select p.*, fy.NAME
from Products p
left join FiscalYear fy ON p.AwardedDate between fy.StartDate and fy.EndDate