1

我有两张表:Customer ------>> Shipment

例如,我想为每个客户的每批货件分配一个唯一编号

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

ETC ...

我怎样才能在 sql server 2008 中做到这一点

4

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
于 2011-10-15T19:56:54.170 回答