私は、次のレコードを持っている:再帰CTE ...ネストされた親を扱っ/子供たちが記録し
(または100%)。上記の例では
、あなたが最初に親があります。
をそれは2人の子供を持っています
子供(今の親)12484は、子12486を持っています。ここの子供(12486)には0.6の割合があります(これは100%ではありません)。これはOKではありません。
子(現在の親)12485には子12487があります。ここの子(12487)には1(または100%)の割合があります。これで結構です。
それぞれのネストされた子のパーセンテージを合計して100%にならないため、その値を取得する必要があります。メッセージを表示する必要があります。私はこれのための質問を思いつくのに苦労している。誰かが私に手を差し伸べることができる?
これは私が試みたもので、「ステートメントは終了しました。ステートメントの完了前に最大再帰100が使い果たされました。」エラーメッセージ。
私は次のようなものが動作するはずと信じてwith cte
as (select cp.parent_payee_id,
cp.payee_id,
cp.payee_pct,
0 as level
from dbo.tp_contract_payee cp
where cp.participant_id = 12067
and cp.payee_id = cp.parent_payee_id
union all
select cp.parent_payee_id,
cp.payee_id,
cp.payee_pct,
c.level + 1 as level
from dbo.tp_contract_payee cp
inner join cte c
on cp.parent_payee_id = c.payee_id
where cp.participant_id = 12067
)
select *
from cte