Попробуйте это:
SELECT Item, Date, Amount
FROM
(
SELECT
T2.Item,
T2.Date,
T2.Amount,
ROW_NUMBER() OVER (PARTITION BY T2.Item ORDER BY T2.Date DESC) rn
FROM table2 T2
JOIN
(
SELECT Item, Amount
FROM
(
SELECT
Item,
Amount,
ROW_NUMBER() OVER (PARTITION BY Item ORDER BY Date DESC) rn
FROM table2
) T1
WHERE rn = 1
) T3
ON T2.Item = T3.Item AND T2.Amount <> T3.Amount
) T4
WHERE rn = 1
Результат для данных вашего примера:
Item Date Amount
1 2010-12-29 20
2 2010-12-30 90
Пояснение
Подзапрос T3 находит самый последнийцена за каждый элемент, используя ROW_NUMBER.Затем он присоединяется к исходной таблице и удаляются строки, в которых цена товара равна самой последней цене.Затем для каждого элемента определяется самая последняя цена оставшихся данных, снова используя технику ROW_NUMBER.Это вторая самая последняя цена.