Я пытаюсь получить номер дела с автоматическим увеличением по годам. Я смог получить его с помощью следующего кода.
create function CalcIncidentID(@yrIn int)
returns float
as
-------------------------------------
--* This function calculates the next case # for a year
--* Usage:
--* Select CalcIncidentID(2012)
------------------------------------------
begin
Declare @nextCase as int;
Declare @nextYear as int;
SET @nextYear = (@yrin +1) *10000
SET @yrIn = (@yrIn*10000)
SET @nextCase = (Select MAX(IncidentID)
From Incident
Where IncidentID > @yrin and IncidentID <= @nextYear) + 1
if @nextCase is null
SET @nextCase = @yrIn+1
return @nextCase
end
Хотя это работает нормально, я бы хотел, чтобы этот формат имел следующий формат (ГГГГ - ####), а не текущий (ГГГГ # ###).
Я знаю, что придется вернуться как varchar. Хотя я не могу понять, как установить следующий случай, если IncidentID не одно число.