<p>如何使用mysql创建递减余额查询以计算会计中的折旧</p>
<p>例如设备成本为16,000美元,预计使用寿命为5年,折旧率为40%。折旧</p>
<pre class="brush:php;toolbar:false;">年份 起始账面价值 折旧率 折旧额 结束账面价值
1 16,000 40% 6,400 9,600
2 9,600 40% 3,840 5,760
3 5,760 40% 2,304 3,456
4 3,456 40% 1,382.40 2,073.60
5 2,073.60 40% 829.44 1,244.16</pre>
<p>如何创建函数/查询以获得上述结果?谢谢</p>
您可以使用递归CTE来得到您想要的结果。例如:
with recursive p as (select 16000.00 as book_value, 0.4 as rate, 5 as total_years), y (year, book_value_start, rate, depreciation, book_value_end) as ( select 1, book_value, rate, round(rate * book_value, 2), book_value - round(rate * book_value, 2) from p union all select y.year + 1, y.book_value_end, y.rate, round(y.rate * y.book_value_end, 2), y.book_value_end - round(y.rate * y.book_value_end, 2) from y cross join p where y.year < p.total_years ) select * from y order by year结果:
在DB Fiddle上查看运行示例。
注意:所有三个参数在第二行中定义。如果您想要更改起始值、利率或年数,请在那里进行更改。