В SQL Server 2008, Как нумерация отправлений для каждого клиента - PullRequest
1 голос
/ 15 октября 2011

У меня есть две таблицы: Клиент ------ >> Отгрузка

Я хочу присвоить каждой партии уникальный номер для каждого клиента, например

CustomerID      ShipmentID       ShipmnetNumber
    10              50                  1
    10              51                  2
    10              55                  3

    15              56                  1
    15              57                  2
    15              58                  3

    17              59                  1
    17              60                  2

и т. Д...

как это сделать в SQL Server 2008

1 Ответ

3 голосов
/ 15 октября 2011

Чтобы получить нумерацию с помощью запроса, вы можете сделать это

select CustomerID,
       ShipmentID,
       row_number() over(partition by Shipment.CustomerID  
                         order by ShipmentID) as ShipmentNumber
from Shipment

Если вы хотите обновить таблицу с помощью ShipmentNumber (недавно добавленный столбец), вы можете сделать это

;with S as
(
  select ShipmentNumber,
         row_number() over(partition by Shipment.CustomerID  
                           order by ShipmentID) as ShipNum
  from Shipment
)
update S
set ShipmentNumber = ShipNum
...