首页 > 解决方案 > SQL 分层数据

问题描述

我在 sql server 中有以下要求,我需要报告 catg "FIN" 的孩子的数据,这些孩子是父母的直系后代。

输入

parent,child,parent_catg,child_catg
A   A   FIN FIN
A   B   FIN FIN
B   B   FIN FIN
A   C   FIN FIN
B   C   FIN FIN
C   C   FIN FIN
B   D   FIN FIN
C   D   FIN FIN
E   E   OTH OTH
E   F   OTH OTH
A   G   FIN FIN
B   G   FIN FIN
A   H   FIN FIN
P   P   FIN FIN
P   Q   FIN FIN

输出

Eligible children for reporting
B
H
Q

有人可以帮忙吗?

标签: sqlsql-serverhierarchical-data

解决方案


您可以使用 group by 和 count()。IE:

 select child 
 from myTable
 where child_catg = 'FIN' and parent <> child
 group by child
 having count(*) = 1;

推荐阅读