Aşağıdaki kayıtları var:Recursive CTE ... İç içe ebeveyn ile uğraşan/çocuk kaydeder
Amacım her ebeveyn için çocukların SUM kontrol edin ve 1 emin olmaktır(veya% 100). Yukarıdaki örnekte
, bir ilk ebeveyn vardır:2 adet çocuk:
Çocuk (şimdi ana) 12.484 çocuk 12.486 sahiptir. Buradaki çocuk (12486), yüzde 0,6'dır (% 100 DEĞİLDİR). Bu sorun değil.
Çocuk (şimdi ebeveyn) 12485, 12487 numaralı çocuğa sahiptir. Buradaki çocuk (12487),% 1 (veya% 100) oranındadır. Tamamdır.
Yuvalanmış her çocuğun yüzdelerini toplamalı ve bu değeri almam gerekiyor çünkü% 100'e kadar özetlenmiyor, sonra bir ileti görüntülemem gerekiyor. Bunun için bir sorgu ile gelmekte zorlanıyorum. Birisi bana yardım edebilir mi?
Denediğim şey budur ve "Bildirimi sonlandırıldı. Maksimum yineleme 100 ifadesi tamamlanmadan önce tüketildi." hata mesajı.
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