Это может не сработать так, как вы думаете. Это даст вам МАКС (Дата) и МАКС (продукт) , которые могут быть не в одной строке . Вот пример:
CREATE TABLE #Test
(
a int,
b date,
c int,
)
INSERT INTO #Test(a, b, c)
SELECT 1, '01/01/2010', 3 UNION ALL
SELECT 1, '01/02/2010', 2 UNION ALL
SELECT 1, '01/03/2010', 1 UNION ALL
SELECT 2, '01/01/2010', 1
SELECT a, MAX(b), MAX(c) FROM #TEST
GROUP BY a
Который вернется
----------- ---------- -----------
1 2010-01-03 3
2 2010-01-01 1
Обратите внимание, что 03.01.2010 и 3 не находятся в одном ряду. В этой ситуации я не думаю, что это имеет значение для вас, но только один на один.
Что касается самого вопроса - в SQL2005 мы, вероятно, применили бы ROW_NUMBER над группами, чтобы получить строку с самой поздней датой для каждой части, однако у вас нет доступа к этой функции в 2000 году. Если вышеприведенное дает Вы исправляете результаты, я бы сказал, используйте это.