我目前正在使用SQL Server 2012中的存储过程。我有下表:
Id | SalesAreaId | CollectionId
---+-------------+-----------
1 | 12 | 1
2 | 7 | 1
3 | 5 | 1
我想选择最高CollectionId
并将其增加+1。
DECLARE @CollectionId INT = 1;
SELECT TOP 1 @CollectionId = [CollectionId]
FROM [MyProject].[Sales]
WHERE [CollectionId] = MAX([CollectionId])
@CollectionId = @CollectionId + 1
因此,下一个@CollectionId
应为2,不幸的是,这并不是真的有用......
您对如何解决此问题有所了解吗?
非常感谢!
答案 0 :(得分:3)
只需将其写为:
SELECT @CollectionId = MAX([CollectionId])
FROM [MyProject].[Sales];
通常情况下,您会在SELECT
和中进行增量考虑空表:
SELECT @CollectionId = COALESCE(1 + MAX([CollectionId], 1)
FROM [MyProject].[Sales];
答案 1 :(得分:0)
DECLARE @CollectionId INT = 1;
SELECT @CollectionId = ((SELECT MAX(CollectionId) FROM [MyProject].[Sales])+1);
如果最后一个collectionid是所有collectionid中最大的,将最后一个collectionid递增1
答案 2 :(得分:0)
您可以简单地按以下方式选择
SELECT TOP 1 (CollectionId + 1)
FROM Sales
ORDER BY CollectionId DESC