Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 按财政年度管理数据_Sql_Sql Server_Sql Server 2008 R2 - Fatal编程技术网

Sql 按财政年度管理数据

Sql 按财政年度管理数据,sql,sql-server,sql-server-2008-r2,Sql,Sql Server,Sql Server 2008 R2,嗨,我正在开发帐户系统。让我们举一个例子ABC是账户名称之一,2010-11年ABC账户的期初余额为40000。现在,ABC账户的年末期末余额为10000。现在我想要的是,在2011-12年ABC账户的期初余额必须是10000,如果我想查看2010-11年的报告,那么它应该显示上一年的值,即40000,而不是10000。我不知道如何设计我的数据库,以便我能够管理财政年度的数据。任何帮助都将不胜感激。谢谢 您可以使用AccountID、FinancialYearID、Balance创建期初余额表

嗨,我正在开发帐户系统。让我们举一个例子
ABC
是账户名称之一,
2010-11年
ABC
账户的期初余额为
40000
。现在,
ABC
账户的年末期末余额为
10000
。现在我想要的是,在
2011-12年
ABC
账户的期初余额必须是
10000
,如果我想查看
2010-11年的报告,那么它应该显示上一年的值,即
40000
,而不是
10000
。我不知道如何设计我的数据库,以便我能够管理财政年度的数据。任何帮助都将不胜感激。谢谢

您可以使用AccountID、FinancialYearID、Balance创建期初余额表 为此,表中有两个条目,一个是2010-2011年度ID 4000
第二个是2011-2012年的ID 10000,我担心这是业务规则,可能更容易在业务级别实现,而不是在与业务规则无关的数据库层实现。这在任何经过适当设计(也是合法的)的会计系统中都是微不足道的,在该系统中,您可以在最后一个事务中存储新的帐户值(带有时间戳)。这是一个非常典型的业务需求,应该在应用程序级别而不是数据库设计级别进行处理。在数据库中,只需存储帐户信息,如名称、余额和日期时间列,即可捕获取款和存款。然后设计sql查询,在运行时查询特定日期的帐户余额,无论您的财政年度开始日期和结束日期是什么,都可以计算帐户的期初和期末余额。请记住,每个国家的财政年度都不同,您可能有一家跨国公司作为位于英国的客户但在美国的财政年度起作用。在这种情况下,如果您在数据库设计级别上处理了这个问题,那么您将陷入非常糟糕的境地。