Если я правильно понимаю, вы хотите показать продукт, который каждый покупатель приобрел больше всего. Используя курсор, вы могли бы сделать это, сначала объявив переменную таблицы, такую как
declare @customersprocessed table
(
@CustomerID
)
Затем вам нужно упорядочить курсор по SUM(Quantity) DESC
, чтобы верхние элементы поднимались до верха.
Наконец, вам нужно будет изменить их внутреннюю часть запроса, чтобы они печатались только в том случае, если идентификатор клиента еще не существует в таблице, а затем добавить параметр Customerid в таблицу, чтобы он больше не печатался. *
begin
if ((select count(1) from @customersprocessed where CustomerID = @CustomerID) = 0)
begin
print @CustomerID+' '+@ContactName+' '+@ProductName+' '+CAST(@Total as varchar)
end
else
begin
insert into @customersprocessed select @CustomerID
end
fetch next from myCursor into @CustomerID, @ContactName , @ProductName, @Total
end
Это, конечно, предполагает, что вы хотите удерживать курсор. Были бы другие способы сделать это, используя выбор всех клиентов, которых вы хотели показать, и подзапрос, который вернул наиболее купленный продукт.