我正在尝试实现下面提到的逻辑。
财政年度从4月1日开始,到3月31日(下一年)结束。在此期间,我要连续增加一个数字。但是当下一个财政年度到来时,序列号将被重置。假设如果在2019年3月31日最后一个序列号是PA9999,那么在2019年4月1日该序列号将从PA0001开始,依此类推。在2020年4月1日,第一个序列号将为PA0001。这将在添加过程中发生,因此旧记录不会发生任何更改。我正在使用SQL来解决它。
实现它的最好方法是什么?
谢谢
Partha
答案 0 :(得分:0)
尝试一下:
DECLARE @tblFY TABLE
(
Id INT,
FinancialYear VARCHAR(100),
StartDate DATETIME,
EndDate DATETIME
)
INSERT INTO @tblFY(Id, FinancialYear, StartDate, EndDate)
VALUES(1,'FY - 2010','01-Apr-2010','31-Mar2011')
DECLARE @tblsales TABLE
(
Id INT,
FinancialYearId int,
SerialNumber VARCHAR(10)
)
DECLARE @yourFinancialYearId INT
SET @yourFinancialYearId = 1
INSERT INTO @tblsales(Id, FinancialYearId, SerialNumber)
VALUES(1, 1 ,'PA0001' )
SELECT NextSerialNumber = 'PA' + RIGHT('0000'+ CAST( (ISNULL(MAX(CONVERT(INT,REPLACE(SerialNumber,'PA',''))),0) + 1) AS VARCHAR(10)),4) FROM @tblsales WHERE FinancialYearId = @yourFinancialYearId