Скажем, я использовал запрос ниже:
select * from GenericTable order by ID, DATE
и получил следующую таблицу.
ID: DATE: VALUE1: VALUE2:
----------------------------------------
1 6/1/18 22 24
1 7/1/18 23 25
1 8/1/18 24 25
2 6/28/18 31 46
2 6/30/18 33 11
2 7/1/18 21 10
Мне нужно уточнить этот запрос, чтобы выбрать только один datarow для ID
на основании даты изменения условия (DATE <= @DateVar)
.Например, if @DateVar = '6/15/18'
, я должен получить следующую таблицу:
ID: DATE: VALUE1: VALUE2:
----------------------------------------
1 6/1/18 22 24
If @DateVar = 6/29
, я должен получить:
ID: DATE: VALUE1: VALUE2:
----------------------------------------
1 6/1/18 22 24
2 6/28/18 31 46
И если я сделаю @DateVar = 7/15
, я долженget:
ID: DATE: VALUE1: VALUE2:
----------------------------------------
1 7/1/18 23 25
2 7/1/18 21 10
Отслеживание Row#
путем разбиения и выбора Row# = 1
было моим первоначальным решением, но как мне создать раздел, который составлял только DATE <= @DateVar
, так что, скажем, @DateVar = 6/30
, Я бы получил следующее, чтобы выбрать Row# = 1
из?
ID: DATE: VALUE1: VALUE2: ROW#:
--------------------------------------------------
1 7/1/18 23 25 1
1 8/1/18 24 25 2
2 6/30/18 33 11 1
2 7/1/18 21 10 2