兄弟グループを特定するためにいくつかのレコードをリンクしようとしています。これを行う方法は、同じ親を持つクライアントを特定することです。
SQL のサンプルは次のとおりです。
SELECT
A.ClientID,
B.ParentID
FROM A
LEFT JOIN B ON B.ClientID to A.ClientID
AND B.REL_END is NULL AND B.REL_CODE = 'PAR'
次の形式でデータを返します。
Client ID Parent ID
1 A
1 B
2 C
2 D
3 C
3 E
4 C
4 D
次のように表示したい方法:
Client ID No. of Siblings
1 0
2 2
3 2
4 2
うまくいけば、この表は、子供 1 には兄弟が 0 人 (2、3、4 と親を共有していない)、子供 2 には兄弟が 2 人 (3 と 4)、子供 3 には兄弟が 2 人 (2 と 4)、子供 4 には兄弟が 2 人いることを示しています ( 2,3)。これを達成するのは簡単なように思えますが、その方法を考えるのに本当に苦労しています! 兄弟と見なされるために、子供が別の子供と 1 つの親のみを共有する場合があるため、少し混乱が生じていると思います。
うまくいけば、これは明らかです、ありがとう。
編集: 明確にするために、関係は、親 ID を別の子と共有する子によって識別されます (ID は一意ですが、この例では一般的なものを提供しました)。したがって、Child 2、3、および 4 はすべて、ID が C の親を持っているため、兄弟と見なされます。