sql - 在 SQL Server 中的一段时间结束后重置序列号
问题描述
我正在尝试实现我在下面提到的逻辑。
财政年度从 4 月 1 日开始,到 3 月 31 日(明年)结束。在此期间,我想连续增加一个数字。但是当下一个财政年度到来时,序列号将被重置。假设如果 2019 年 3 月 31 日最后一个序列号是 PA9999,那么在 2019 年 4 月 1 日,序列号将从 PA0001 开始,依此类推。同样在 2020 年 4 月 1 日,第一个序列号将是 PA0001。这将在添加过程中发生,因此旧记录不会发生任何更改。我正在使用 SQL 来解决它。
实现它的最佳方法是什么?
谢谢
帕塔
解决方案
尝试这个:
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
推荐阅读
- python - Python datetime 和 pandas 为同一日期提供不同的时间戳
- javascript - 比较两个对象数组并用另一个对象替换一个对象
- reactjs - 无法让 Jest 运行命名导入
- python - 如何在 Windows 10 的 pyomo 的 SolverFactory 中使用“cbc”
- react-native - react-native 中的 BottomSheet 动画第一次无法正常工作
- react-native-ui-kitten - 选择时如何更改底部标签导航图标的颜色?
- java - 基于 Spring JPA 接口的投影在连接实体上返回 null
- xml - 解析 XML 时出现问题。带数字标签
- java - 在 ArrayList 中“合并”多个相同类型的元素
- sql - sql:在sql中相交(加入概率)