私は次の表を持っています
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
いくつかの制約で Totalisation を更新するストアド プロシージャ spGetResult を使用しました。
spGetResultstarting
最下位の子から上位 (ルート) への再帰的な更新を開始するために、上記のクエリをどのように組み合わせることができますか?