sql一次插入多条记录时,希望能够实现指定字段累加1,求解
表HSL_TestPassStatistics数据结构如下:
classId,passSubjectCount
表数据形式如下三组数据
classId, passSubjectCount
组一:
3 1
3 2
3 3
3 4
3 5
3 6
组二:
4 1
4 2
4 3
4 4
4 5
4 6
组三:
5 1
5 2
5 3
5 4
5 5
5 6
期望得到的结果
当插入同一个班级的记录的时候,每次新插入相同班级的记录是,新增的记录的passSubjectCount字段值能够累加1
要求插入方式采用如下形式,一条语句实现,不能采用循环方
以下写法不正确,但希望能够达到抛砖引玉的效果
INSERT INTO HSL_TestPassStatistics(classId, passSubjectCount)
SELECT classId,
(
SELECT COUNT(Id) + 1
FROM TestPassStatistics A
WHERE A.classId = B.ClassId
)
FROM classTest B
[解决办法]
INSERT INTO HSL_TestPassStatistics(classId, passSubjectCount)SELECT classId,(select max(passSubjectCount) from HSL_TestPassStatistics where classid=b.classid)+row_number() over(order by getdate() ) FROM classTest b where b.classid='1'
[解决办法]
INSERT INTO HSL_TestPassStatistics(classId, passSubjectCount)SELECT classId,(select max(passSubjectCount) from TestPassStatistics a where a.classid=b.classid)+row_number() over(partition by classId order by (select 0)) nexsque FROM #HSL_TestPassStatistics b
[解决办法]