【发布时间】:2017-03-15 12:40:20
【问题描述】:
ReportingDirector ManagerID EmployeeName EmployeeID WeekNumber Pointsrewarded
john(director) 1 a 11 week1 100
john(director) 1 b 22 week1 200
john(director) 1 c 33 week1 300
bob(director) 2 d 44 week1 -10
bob(director) 2 e 55 week1 30
bob(director) 2 f 66 week1 40
bob(director) 2 g 77 week1 50
bob(director) 2 h 88 week1 90
cavin(director) 3 i 99 week1 300
cavin(director) 3 j 100 week1 400
cavin(director) 3 k 111 week1 800
cavin(director) 3 l 222 week1 305
cavin(director) 3 m 333 week1 23
cavin(director) 3 n 444 week1 44
alpha (senior Director) 111 john 1111 week1 455
alpha(senior Director) 111 bob 2222 week1 -10
alpha(senior Director) 111 cavin 3333 week1 77
x x mr.aplha 1 week1 99
我在上面有一张桌子。这里我们有三个位置employees、director 和senior director。员工隶属于董事,董事隶属于高级董事。
问题: 如果董事下的任何人的积分(请参见pointsReawrded 列)为-10,则董事得到-100 分,即在pointsRewarded 中加-100 分该各自董事的栏目。如果没有员工,他/她的下属有-10,那么主管将获得200分的奖励。
例如,表中的员工“d”在 bob 下,他是董事。所以 -100 奖励给 bob。同样,在 john 下没有人有 -10 ,所以 john 获得了 200 分的奖励。
我们不会奖励任何积分给“alpha”,即使他下面的任何员工的积分为 -10,因为他处于链条的顶端。
任何人都可以帮我做一个通用查询,以检查董事下的任何员工是否得分为-10,并处罚该董事的得分为-100分。如果不是200分的奖励。
【问题讨论】:
-
你能发布你的代码吗?
-
请给我们看看您已经尝试过的代码
标签: sql sql-server sql-server-2008 sql-server-2005 sql-server-2012