【发布时间】:2015-10-15 19:24:05
【问题描述】:
假设您在数据库中有这组记录:
PartNumber Qty Group
A 1 1
B 2 1
C 3 1
B 4 1
a 1 2
B 2 2
C 3 2
B 4 2
我们怎样才能得出这个结果:
A 2
B 4
C 6
B 8
即第一组第一行与第二组第一行、第一组第二行与第二组第二行、第一组第三行与第三行相加第二组,以此类推。
注意事项:
*- 我可以有多个组
*- 组将始终具有相同的长度(即每个组的行数相同)
*- 组中的零件编号将始终按相同顺序相同
*- 我可以重复多个零件号,即不仅 B 重复,而且每个组都重复
我知道我可以在表格中添加一个新列来获得类似这样的内容:
PartNumber Qty Group idx
A 1 1 1
B 2 1 2
C 3 1 3
B 4 1 4
a 1 2 1
B 2 2 2
C 3 2 3
B 4 2 4
and: select partnumber, sum(qty) from table group by idx
但这正是我做不到的。有什么建议么?
【问题讨论】:
-
你用的是什么版本的sql-server?
-
@JNevill "Microsoft SQL Server 2008 R2 (SP3) "
-
您的表只是一组无序的
(PartNumber, Qty, Group值。因此,每组没有第一行、第二行等。您的表格中是否还有另一列管理顺序? -
@GiorgosBetsos 是的,我有一个 Id(自动增量)列。很抱歉之前没有提到。
-
您的最后 4 行样本
idx = 1 - 1 - 3 - 4?可以吗?
标签: sql sql-server database