Sql server SQL server行号()超过(分区问题)

Sql server SQL server行号()超过(分区问题),sql-server,row-number,Sql Server,Row Number,我有一个名为SavingsMaster的表。下面是一个示例输出 +--------+------------------+-------+ | CustNo | AccountNo | Cycle | +--------+------------------+-------+ | 1 | 48SVAS1521144100 | | | 2 | 21SVSV1300854500 | | | 2 | 21SVAS1308476900

我有一个名为SavingsMaster的表。下面是一个示例输出

+--------+------------------+-------+
| CustNo |    AccountNo     | Cycle |
+--------+------------------+-------+
|      1 | 48SVAS1521144100 |       |
|      2 | 21SVSV1300854500 |       |
|      2 | 21SVAS1308476900 |       |
|      1 | 48SVAS1411737700 |       |
+--------+------------------+-------+
如您所见,两个客户都有唯一的帐号。我的要求是按CustNo、AccountNo更新循环列组

我可以使用下面的select查询,但无法在update子句中使用它

 SELECT CustNo, AccountNo,
        ROW_NUMBER() OVER(PARTITION BY CustNo  ORDER BY AccountNo)    as RowNumber 
 FROM SavingsMaster
请寻求您的帮助以编写更新语句


非常感谢……

如果您需要序列号,则可以使用可更新的CTE:

WITH toupdate AS (
      SELECT CustNo, AccountNo,
             ROW_NUMBER() OVER (PARTITION BY CustNo ORDER BY AccountNo) as RowNumber 
      FROM SavingsMaster
     )
UPDATE toupdate
    SET cycle = RowNumber;
试着这样做:

UPDATE SavingsMaster
SET Cycle=T1.RowNumber
FROM
     (SELECT CustNo, AccountNo, ROW_NUMBER() OVER(PARTITION BY CustNo  ORDER BY AccountNo) as 'RowNumber'  
      FROM SavingsMaster) as T1 JOIN
SavingsMaster S ON S.CustNo=T1.CustNo AND S.AccountNo=T1.AccountNo

表格式似乎已中断。请确保您已中断(在行尾使用双空格“”)@Devinda:很高兴我能提供帮助。;)