SQL Server 2008 _ group by + incremental

时间:2015-07-19 18:02:39

标签: 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和增量例程的小组是必要的,但我还没有解决方案。有人可以给我任何帮助吗? 非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用

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

问题中没有任何内容表明分区中需要任何特定的排序,因此按照与分区相同的值排序将会任意执行此操作。