У меня есть следующая табличная переменная в SQL Server 2005:
DECLARE @results TABLE (id int IDENTITY(1,1),
customerId int,
salesId int,
score int,
lastServiceDate datetime,
PRIMARY KEY(id));
Мне нужен эффективный способ очистки таблицы или доступа к ее результатам, чтобы он возвращал только 1 результат на salesId. Если для salesId имеется более 1 результата, в нем должна отображаться строка с наивысшим баллом или, в случае привязки, самая последняя lastServiceDate из таблицы Customer.
Прямо сейчас мои тестовые данные выглядят так:
id customerId salesId score lastServiceDate
1 950 418 3 2009-08-09 00:00:00.000
2 951 418 3 2009-08-19 00:00:00.000
3 952 418 1 2009-08-22 00:00:00.000
4 953 419 2 2009-08-15 00:00:00.000
Я хочу что-то, что вернуло бы, в данном случае, только две строки - id 2 (top score / lastServiceDate для salesId 418) и id 4 (только результат для salesId 419). В конце мне нужно взять данные из этой таблицы и вставить их в таблицу JobResult, выбрав customerId и salesId из @results, с этими ограничениями.
(На этом заканчивается вопрос, заданный в https://stackoverflow.com/questions/1343647.)