2017-03-22 15 views
-1

階層内のすべての下から上の組み合わせを派生させるためにクエリを作成しようとしています。すべてのエンティティに所有者と所有者の割合があります。あらゆるレベルでの所有者の組み合わせ:私は最下層にフックをやってCTEを使用して試してみましたが、これは私だけ、前を与えるSQLサーバーhieracyボトムトップの組み合わせ

Entity  Owner  Percentage 
F1   F2   x 
F1   F3   x*y 
F1   F4   x*y*z 
F2   F3   y 
F2   F4   y*z 
F3   F4   z 

Data: 
Entity  Owner  Percentage 
F1   F2   x 
F2   F3   y 
F3   F4   z 

私は結果がなりたいです(-1レベル)エンティティであり、階層内の未定義レベルをサポートする必要があります。 誰かが私を正しい方向に向けることができますか?

+0

x、y、zは整数であるか? –

答えて

0
;with d as 
(
    select t.Entity, t.Owner, t.Percentage 
    from t 

    union all 

    select d.Entity, t.Owner, t.Percentage * d.Percentage 
    from d 
    inner join t on d.Owner = t.Entity 
) 
select * 
from d 
order by d.Entity, d.Owner