对于财务年度更改,需要对SQL Server数据库进行哪些更改?

时间:2015-05-16 08:31:09

标签: sql-server

我有一个使用VB.NET和SQL Server的软件。该软件工作正常,但问题是如果考虑它是新的财政年度,那么新的一年所有的账单应该从1开始。

目前所有账单都存储在数据库表中,不知道如何完成。如果我将这些条目从表移动到另一个临时表,那么从一个开始计数,但依赖于该表的所有函数都显示错误的输出。

或者有没有其他方法来管理必须考虑财政年度变化的软件?

1 个答案:

答案 0 :(得分:0)

一个选项是在分区上执行行号。您的查询看起来像

SELECT billName,
billAmmount,
ROW_NUMBER() OVER (
    ORDER BY billDate 
    PARTITION BY (CAST((DATEADD *the offset from calendar year start to fiscal year start* billDate) AS YEAR) 
) AS billNum
FROM billsTable

这样做是按照账单日期的顺序计算行数,并在每次会计年度时重新开始计数。这个号码将作为billNum返回。

部分

(DATEADD *the offset from calendar year start to fiscal year start* billDate)

是这里最重要的部分。因为它将财政年度转换为日历年。那么你必须决定转换的年份是否是那一年和前一年,或那一年和后一年。例如。如果转换年份是2015年,那是指2015-2016财年还是2014-2015财年。它只取决于你在DATEADD中转换它的方向。