【发布时间】:2014-05-14 09:01:23
【问题描述】:
我有下表
PNLTable([PnlId],
[Line],
[TotalisationId],
[Designation],
[Totalisation],
ParentId).
我使用以下查询来获取每个 pnlid 的所有子项
;WITH CTE
AS
(
SELECT PNLId ,concat('/',cast(PNLId as nvarchar(MAX)) )as tree, PNLParentId
FROM [dbo].[DimPNL]
WHERE PNLParentId IS NULL
UNION ALL
SELECT T1.PNLId,concat( CTE.tree ,'/',cast(t1.PNLId as nvarchar(MAX))), T1.PNLParentId
FROM [dbo].[DimPNL] AS T1
INNER JOIN CTE
ON T1.PNLParentId = CTE.PNLId
)
SELECT *
FROM CTE
我使用了一个存储过程 spGetResult,它使用一些约束来更新 Totalisation。
如何结合spGetResultstarting 和上面的查询,以便开始从最低的子级递归更新到高级(根)?
【问题讨论】:
标签: sql sql-server recursive-cte