Этот конкретный запрос возвращает предпоследнее значение в некоторых случаях, но последнее значение в других случаях. Либо мой контрольный столбец неверен, либо для этого запроса нужно немного поднять кнопку.
SELECT DISTINCT
a.[Item]
LAST_VALUE(b.[Date]) OVER(PARTITION BY b.[Item2] ORDER BY b.[Date] RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING)
FROM
[DB1] as a
LEFT JOIN
[DB2] as b on a.[Item] = b.[Item2]
WHERE a.[Block] = 0 AND a.[SafetyValue] = '0'
ORDER BY a.[Item];
Может быть, отсутствие прогресса связано с неправильным пониманием RANGE / ROW между?
Я посмотрел на это решение: Почему LAST_VALUE не возвращает последнее значение?
, и он делал то же самое.
Редактировать: Оказалось, что это правильно .... мой контрольный столбец не отсортирован.