Sql-Server-2012
如何在每個分組的最大 n 中獲取 Max(col) 的值,並將其分組到聲明的變數中。MS SQL 伺服器
我正在尋找如何將@MaxItemSeqNum 的值設置為 MAX(dbo.
$$ Table1 $$.$$ Item_Seq_number $$) 在我的選擇語句中。我需要這個才能為該分組項插入具有下一個序列的下一條記錄。我已經有一個代理主鍵,它會自動遞增並用於標識表中的所有項目。Batch_ID 可以有重複項,我按這些進行分組,然後選擇 itemSeqNum 的最大值以插入下一個序列 itemSeqNum + 1。因此,如果我有 5 條具有相同 batch_Id 的記錄,我希望得到 5 作為結果並將其增加 1。
DECLARE @MaxItemSeqNum Int SELECT Batch_Id,MAX(dbo.[Table1].[Item_Seq_number]) FROM Table1 WHERE Batch_Id = 1 Group By Batch_Id
如何將@MaxItemSeqNum 的值設置為返回的結果
任何一個
SET @MaxItemSeqNum = ( SELECT MAX([Table1].[Item_Seq_number]) FROM Table1 WHERE Batch_Id = 1 Group By Batch_Id );
或者
SELECT @MaxItemSeqNum = MAX([Table1].[Item_Seq_number]) FROM Table1 WHERE Batch_Id = 1 Group By Batch_Id;
最後一個變體更有用——它允許在一個語句中將值分配給多個變數。