Как проверить, находится ли дата в параллельном интервале времени? - PullRequest
0 голосов
/ 03 марта 2020

У меня есть такие данные:

TimeID | StartDate | EndDate  | Price
000001 | 03.04.20  | 10.10.20 | 12
000002 | 01.02.20  | 31.12.99 | 13
000003 | 01.01.20  | 31.01.20 | 15

Для определенной даты, например. 05.05.20 Я хочу получить самую дешевую цену.
Эта дата будет соответствовать TimeID 1 и 2. Но 1 будет дешевле.
Недельная цена будет 12.

Возможно ли групповые интервалы или как найти самую низкую цену в параллельных интервалах времени?

Ответы [ 3 ]

1 голос
/ 03 марта 2020
select top 1 * from table_name where date> startdate and date <enddate order by price
1 голос
/ 03 марта 2020

Я нашел решение:

select TOP 1 Price from Tab
where StartDate <= '05.05.20'
and EndDate >= '05.05.20'
order by Price

Это дает мне самую низкую цену за интервалы времени. Если есть более элегантное решение, дайте мне знать.

0 голосов
/ 03 марта 2020

Несколько проще запрос - использовать функцию min, которая возвращает наименьшее значение для выбранных записей (интервал).

select min(Price) from Tab where '05.05.20' between StartDate and EndDate

Я также использовал оператор before для упрощения пары условий хх> = аа и хх <= bb </p>

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