我有一个表 - userinfo ,其中我有一些属性用户ID,FLname,ReportTo,TotalempUnderUser 我试图查找总数每个级别的员工如何实现这一目标
对于用户 null , ReportTo 应该让所有用户计数在下面的表和子项中它应该必须进一步获得所有 ReportTo ,计数 和 这是预期的输出
userid FLname ReportTo TotalempUnderUser
1 abc null 4
2 xyz 1 2
3 aaa 1 0
4 wer 2 1
5 dxd 4 0
我不知道如何得到这个和 我试过这个查询
With cte as (
select userid,ReportTo from userinfo
union all
select c.userid,e.ReportTo
from cte c join userinfo e on (c.ReportTo=e.userid)
)
select m.ReportTo,count(e.userid) as Count_of_Employees
from userinfo m
left join cte e on (e.ReportTo=m.ReportTo) where m.userid=1
group by m.ReportTo
OPTION(MAXRECURSION 0)
如果我检查 TotalempUnderUser 的用户ID 1,预期输出为 4
答案 0 :(得分:1)
这真的让我很难过,我希望有一个更简单的陈述(我希望这是正确的,至少你的样本似乎是这样):
+------------+---------------------+---------------------+
| Child_Code | Plan_Date_1 | Plan_Date_2 |
+------------+---------------------+---------------------+
| 000001 | 21.02.2017 00:00:00 | 21.03.2017 00:00:00 |
+------------+---------------------+---------------------+