Получить первый / последний ряд n-й последовательной группы
Какие'Самый простой способ выбрать одну запись / значение из n-й группы? Группа определяется материалом, и это 'с ценой (цены могут меняться). Мне нужно найти первую дату последней и последнюю дату следующей за последней группы материалов-цен. Поэтому я хочу знать, когда именно изменилась цена.
мы попробовали следующий запрос, чтобы получить первую дату текущей (последней) цены, которая может вернуть неправильную дату, если эта цена использовалась ранее:
DECLARE @material VARCHAR(20)
SET @material = '1271-4303'
SELECT TOP 1 Claim_Submitted_Date
FROM tabdata
WHERE Material = @material
AND Price = (SELECT TOP 1 Price FROM tabdata t2
WHERE Material = @material
ORDER BY Claim_Submitted_Date DESC)
ORDER BY Claim_Submitted_Date ASC
Это также только возвращает последний, как я могу получить предыдущий? Так дата, когда предыдущая цена использовалась последней / первой?
Я упростил мою схему и создалэто sql-скрипка с выборкой данных. Здесь в хронологическом порядке. Поэтому строка с ID = 7 - это то, что мне нужно, так какs имеет предпоследнюю цену с самой поздней датой.
ID CLAIM_SUBMITTED_DATE MATERIAL PRICE
5 December, 04 2013 12:33:00+0000 1271-4303 20
4 December, 03 2013 12:33:00+0000 1271-4303 20