我有两张桌子. 表与发行和表与交易. 在我的交易表中,我有一个交易ID列表,对于他们,我必须找出他们有多少父母或子元素
脚本如下所示: https://dbfiddle.uk/ZM9fuv7C个
最终我必须得到这样的结果
DealID | ParentCNT | ChildCNT |
---|---|---|
106 | 2 | 1 |
107 | 1 | 2 |
108 | 2 | 0 |
109 | 0 | 0 |
WITH rec4 (ParentID, ChildID)
AS
(
SELECT ParentID, ChildID
FROM t_parent
-- where ChildID = 106
UNION ALL
SELECT p.ParentID, p.ChildID
FROM t_parent AS p
JOIN rec4 AS r ON p.ParentID = r.ChildID
), rec5 (ParentID, ChildID)
AS
(
SELECT ParentID, ChildID
FROM t_parent
-- where ChildID = 106
UNION ALL
SELECT p.ParentID, p.ChildID
FROM t_parent AS p
JOIN rec5 AS r ON p.ChildID = r.ParentID
)
--select ISNULL(a.DealID, 0), ttt.ParentCNT, ttt.ChildCNT
--from #A a left join
select ch.ParentID, ChildCNT, ParentCNT from (
select ParentID, COUNT(r5.ChildID) as ChildCNT from rec5 r5 Group by ParentID) ch
join (select ChildID, COUNT(r4.ParentID) as ParentCNT from rec4 r4 Group by ChildID) pr
on ch.ParentID = pr.ChildID--) ttt
--on a.DealID = ttt.ParentID```