T-SQL 计算固定资产折旧(直线法)

使用 CTE, 计算固定资产折旧(直线法)。

DECLARE @Assets TABLE (NAME VARCHAR(20), PurchaseCost MONEY, Period INT)
INSERT INTO @Assets
SELECT '计算机', 5000, 24
;WITH SLDepSched (AssetID, [Month], Period -- 固定资产

    ,SLDepAmt, SLBookValue, SLCumDep       -- 直线法

    ) AS (

    SELECT NAME, 0, Period

        ,ROUND(PurchaseCost/Period, 2)     -- 直线法折旧额

        ,PurchaseCost, CAST(0 AS MONEY)

    FROM @Assets

    UNION ALL

    SELECT AssetID, [Month]+1, Period

        ,CASE [Month]+1 WHEN Period THEN SLBookValue ELSE SLDepAmt END

        ,CASE [Month]+1 WHEN Period THEN CAST(0 AS MONEY) ELSE SLBookValue - SLDepAmt END

        ,CASE [Month]+1 WHEN Period THEN SLCumDep + SLBookValue ELSE SLCumDep + SLDepAmt END

    FROM SLDepSched

    WHERE [Month] < Period)

SELECT AssetID, [Month], SLDepAmt, SLBookValue, SLCumDep                  

FROM SLDepSched

ORDER BY AssetID, [Month]


计算机0208.335000.000.00
计算机1208.334791.67208.33
计算机2208.334583.34416.66
计算机3208.334375.01624.99
计算机4208.334166.68833.32
计算机5208.333958.351041.65
计算机6208.333750.021249.98
计算机7208.333541.691458.31
计算机8208.333333.361666.64
计算机9208.333125.031874.97
计算机10208.332916.702083.30
计算机11208.332708.372291.63
计算机12208.332500.042499.96
计算机13208.332291.712708.29
计算机14208.332083.382916.62
计算机15208.331875.053124.95
计算机16208.331666.723333.28
计算机17208.331458.393541.61
计算机18208.331250.063749.94
计算机19208.331041.733958.27
计算机20208.33833.404166.60
计算机21208.33625.074374.93
计算机22208.33416.744583.26
计算机23208.33208.414791.59
计算机24208.410.005000.00

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值