求SQLServer SQL, SQLServer 如何通过上级用户名和岗位编码,获取所有下属包括隔级下属人数和分数总和及平均值
Id username managername userpositioncode managerpositioncode score
1 liyuan wanqiang A1 B1 3.1
2 wangxi wanqiang A2 B1 3.2
3 wanqiang aihua B1 C1 3.3
4 sunl aihua B2 C1 3.7
5 gaohui fany B4 C2 3.5
请楼主再写的详细些,你那个上级和下属的对应关系是怎么样的?
username是下属, managername是上级,通过这两项匹配
自己解决了,大家可以抛砖
WITH aCTE AS
(
SELECT positioncode,eusername,mpositioncode,musername,score
FROM epm
WHERE positioncode='C000AA' --指定的节点
UNION ALL
SELECT b.positioncode,b.eusername,b.mpositioncode,b.musername,b.score
FROM aCTE a
JOIN epm b
ON a.positioncode=b.mpositioncode
)
SELECT Musername, mpositioncode,COUNT(1),AVG(score),SUM(score) FROM aCTE group by Musername,mpositioncode
其实还是看的不太清楚,不过如果是多个表的话应该可以用嵌套的方法解决的,个人感觉嵌套更加清晰些