Yogi@FLG Ответов: 1

Как получить записи на определенную дату. Если нет записи для определенной даты, извлеките последнюю введенную запись до этой даты.


Я хочу получить записи за определенную дату с помощью sql-запроса.
Если для этой даты нет записей, получите последнюю введенную запись для этой конкретной даты.
Например если я выберу запись на 2 ноября 2017 года я хочу получить записи на 2 ноября 2017 года
если 2 ноября 2017 года записи не были введены, извлеките запись с 1 ноября 2017 года.

Что я уже пробовал:

Пробовал с помощью fetching <= в sql-запросе, но он будет извлекать все записи до 2 ноября 2017 года
Но мне нужна только последняя запись на эту конкретную дату или около того.

1 Ответов

Рейтинг:
5

Santosh kumar Pithani

DECLARE @date DATETIME=GETDATE();

SELECT Records FROM tableName WHERE datecolumn in(select TOP 1 case WHEN datecolumn=@date then @date ELSE @date-1 end  from tableName)


Yogi@FLG

Это решит проблему только за один предыдущий день.Но что, если временной разрыв больше этого?

Santosh kumar Pithani

Если вам нужна только дата, то используйте функцию cast или convert