Не очень понял задачи. Нужно сгруппировать некоторые данные, а потом (уже сгруппированные) их пронумеровать? Если так - то это делается легко (Transact SQL)
X++:
select salesid, itemid, sum(SalesQty) as SumQty, ROW_NUMBER() over(order by salesId) as LineNumber from salesline
group by salesid, itemid
Здесь функция ROW_NUMBER() - это штатная функция нумерации строк, а конструкция over (order by salesId) позволяет определить сортировку, согласно которой будет выполняться нумерация. Например, можно указать вместо salesId - itemid и тогда результат будет несколько иной (другие строки получат номер 1, 2 и т.д.)
Если это не то, что нужно - то я не понял задачи. Свои (невстроенные) функции в SQL использовать нужно аккуратно. Они не самые "шустрые" в плане исполнения.