使用 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]
计算机 0 208.33 5000.00 0.00

本文演示了如何利用T-SQL的递归公共表表达式(CTE)来计算固定资产的直线法折旧。以计算机为例,详细展示了不同年份的折旧额,从第1年至第24年,每年折旧额为208.33,直到总价值折旧完毕。
最低0.47元/天 解锁文章
1617

被折叠的 条评论
为什么被折叠?



