我想使用SQl Server计算账单老化天数。清算账单后,计算其年龄。
Date Invoice# type age Debit Credit Balance
01/01 opening 27 8061
01/01 Cr 2000 6961
5/01 Cr 5000 1961
5/1 5 Dr 30 3000 4961
27/1 Cr 2000 2961
5/2 Cr 2961 0
1月27日期初结清;所以,发票年龄是27天。发票#5在5/2清除;所以,它的年龄将是30天。我如何在SQL Server代码中执行此操作?
我在SQL表中有这个cledger表。
我无法弄清楚如何执行这个递归任务...选择账单#并汇总所有信用,直到借方金额大于信用额。使用该信用交易的日期,计算借方帐单日期与清算该帐单之间的天数差异。
任何帮助都会很明显。提前谢谢。
答案 0 :(得分:0)
你正在寻找一些递归的东西 - 它考虑了之前的所有交易&聚合它们,将它们与当前行进行比较。您需要有选择地将表连接到自身,计算每行当前日期的余额。您可以使用递归CTE,也可以使用T-SQL OVER子句 - 请参阅http://msdn.microsoft.com/en-us/library/ms189461.aspx。