2015-07-19 5 views
-1

мне нужна ваша помощь для этого случая:SQL Server 2008 _ группа по + инкрементный

(я работаю на SQL Server 2008)

Таблица:

IdProj  DocType  NumDoc 
00265  PC   1 
00265  PC   1 
00268  PC   1 
00268  PC   1 
00268  PC   1 
00268  PC   1 
00268  PC   1 
00370  PC   1 
00370  PC   1 
00370  PC   1 

Я хотел бы получить:

IdProj  DocType  NumDoc 
00265  PC   2 
00265  PC   3 
00268  PC   2 
00268  PC   3 
00268  PC   4 
00268  PC   5 
00268  PC   6 
00370  PC   2 
00370  PC   3 
00370  PC   4 

Я полагаю, что группа IdProj и инкрементная рутина необходимы, но у меня пока нет решения. Может ли кто-нибудь мне помочь? Большое спасибо.

ответ

0

Вы можете использовать

;WITH CTE AS 
(
SELECT *, 
     ROW_NUMBER() OVER (PARTITION BY IdProj ORDER BY IdProj) AS RN 
FROM YourTable 
) 
UPDATE CTE 
SET NumDoc = 1 + RN 

Там нет ничего показано в этом вопросе, что указывает на какой-либо конкретный заказ требуется в раздел так заказе на ту же величину, как раздел будет делать это произвольно.

Смежные вопросы