1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| DECLARE @t TABLE
(
NumP int identity
, mois varchar(10)
, RibRip char(6)
, NumPC tinyint
)
INSERT INTO @t (mois, RibRip) VALUES ('Janvier', '012345')
INSERT INTO @t (mois, RibRip) VALUES ('Janvier', '012345')
INSERT INTO @t (mois, RibRip) VALUES ('Janvier', '543210')
INSERT INTO @t (mois, RibRip) VALUES ('Janvier', '012345')
INSERT INTO @t (mois, RibRip) VALUES ('Janvier', '543210')
INSERT INTO @t (mois, RibRip) VALUES ('Fevrier', '012345')
------------------------------------------------------------------
;WITH
CTE AS
(
SELECT NumP
, mois
, RibRip
, ROW_NUMBER() OVER(PARTITION BY mois, RibRip ORDER BY NumP) AS NumPC
FROM @t
)
UPDATE T
SET NumPC = C.NumPC
FROM @t AS T
INNER JOIN CTE AS C ON T.NumP = C.NumP
SELECT *
FROM @t |
Partager