В SQL Server 2008, Как нумерация отправлений для каждого клиента

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

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

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

sql,sql-server,sql-server-2008,row-number,

1

Ответов: 1


3 принят

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

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
SQL, SQL-сервер, SQL-Server-2008, номер-строки,
Похожие вопросы