あなたの例を使用すると、親の名前が扶養家族の名前の中に含まれている場合、子の親の名前のサブセットを処理することができます。もしそうなら、ユニオンクエリを検討してください:
# GREAT-GRANDPARNTS
SELECT DISTINCT Null As Parent, Parent As Dependent
FROM Ancestry
WHERE Len(Parent) = 1
UNION
# GRANDPARNTS
SELECT DISTINCT Left(Parent, 1) As Parent, Parent As Dependent
FROM Ancestry
WHERE Len(Parent) = 3
UNION
# PARENTS
SELECT DISTINCT Left(Child, 1) As Parent, Child As Dependent
FROM Ancestry
WHERE Len(Child) > 3
UNION
# CHILDREN
SELECT DISTINCT Left(Child, 3) As Parent, Child As Dependent
FROM Ancestry
WHERE Len(Child) > 3;
もちろん、Len()
を調整します 、Left()
、またはMid()
文字列は、実際の祖先の名前のパターンに従って機能し、拡張します(つまり、孫)。子文字列値に親の参照がない場合、このソリューションは機能しません。