【发布时间】:2020-05-28 14:43:07
【问题描述】:
我有一个如下所示的 CustomerSales 表:
[RowID], [Cust], [Time], [Article], [Qty], [Amount], [Receipt]
1, C1, 10:10:00, A1, 1, 100, 1
2, C1, 10:10:00, A2, 2, 101, 1
3, C1, 10:10:00, A3, 3, 102, 1
4, C1, 10:10:00, A4, 4, 103, 1
5, C2, 10:10:11, A3, 5, 104, 1
6, C3, 10:20:01, A2, 6, 105, 1
7, C4, 10:20:01, A2, 7, 106, 1
8, C4, 10:20:01, A1, 8, 107, 1
9, C1, 11:11:01, A2, 3, 100, 1
10, C1, 11:11:01, A3, 2, 101, 1
我的数据没有收据编号。因此,要求是为收据编号生成一个线性编号。例如从 1 开始并以 1 递增。 要确定哪些行项目属于给定收货编号,可以按 [Cust] 和 [Time] 对记录进行分组。属于 [Cust] 和 [Time] 组的所有行都将更新为 MAX(Receipt]+1(下一个可用的收据编号)。
预期结果如下:
[RowID], [Cust], [Time], [Article], [Qty], [Amount], [Receipt]
1, C1, 10:10:00, A1, 1, 100, 1, 1
2, C1, 10:10:00, A2, 2, 101, 1, 1
3, C1, 10:10:00, A3, 3, 102, 1, 1
4, C1, 10:10:00, A4, 4, 103, 1, 1
5, C2, 10:10:11, A3, 5, 104, 1, 2
6, C3, 10:20:01, A2, 6, 105, 1, 3
7, C4, 10:20:01, A2, 7, 106, 1, 4
8, C4, 10:20:01, A1, 8, 107, 1, 4
9, C1, 11:11:01, A2, 3, 100, 1, 5
10, C1, 11:11:01, A3, 2, 101, 1, 5
【问题讨论】:
-
请更新您的问题,尽您最大的努力自己解决这个问题。此外,您不需要“循环”。就
UPDATE... -
这能回答你的问题吗? Update Statement using Join and Group By
标签: sql sql-server sql-update