- /*
- 作者:zhang502219048
- 脚本来源:https://www.cnblogs.com/zhang502219048/p/11273639.html
- 功能:通过CTE递归方式实现计算1分钱翻倍1个月的问题
- 字段说明:DayX为第几天,MoneyX为当天多少钱,MoneyTotal为截至当天总共多少钱
- */
-
- with cte_table(DayX, MoneyX, MoneyTotal) as
- (
- select 1
- , cast(0.01 as decimal(18,2)) --第1天当天0.01元
- , cast(0.01 as decimal(18,2)) --截至第1天当天总共0.01元
- union all
- select DayX + 1 --DayX加1天
- , cast(MoneyX * 2 as decimal(18,2)) --第DayX + 1天当天多少钱
- , cast(MoneyTotal + MoneyX * 2 as decimal(18,2)) --截至第DayX + 1天当天总共多少钱
- from cte_table
- where DayX < 30 --计算到第30天截止,结束递归
- )
- select * from cte_table --查看明细数据(DayX:第几天;MoneyX:当天多少钱;MoneyTotal:截至当天总共多少钱)
- go