姓名,级别,上级,收入
('张三',1,'kkk',100)
('里司',2,'张三',100)
('望物',3,'里司',100)
('找六',4,'望物‘,3000)
('无7',1,'kkk',100)
('六8',2,'无7',100)
('起9',3,'六8',3000)
('两10',4,'起9’,3000)
('蔡11',4,'张三',3000)
找出每个级别为1,的下面所有级别为4的收入和(仅仅是为4),比如一个公司有很多个项目经理,项目经理下面团队负责人,团队负责人下面有小组长,小组长下面有普通员工,不过项目经理下面也可以直接有团队负责人和普通员工,团队负责人下面也可以直接有普通员工,我要求的就是每个项目经理下面所有的普通员工(只能普通员工)的收入和
from (
select 上级, 收入
from 表名
where 级别 = 4
start with 级别 = 1
connect by prior 姓名 = 上级
) A group by 上级
可能也可以不用子查询。
from (
select 上级, 收入
from 表名
where 级别 = 4
start with 级别 = 1
connect by prior 姓名 = 上级
) A group by 上级
----------这个有问题select 上级,sum(收入),设个上级是直接上级,而不是需要的项目经理这一级
(select 上级 from tab group by level having level=1) group by 上级
Select t.姓名1,sum(j.收入)
(Select j1.姓名 as 姓名1,j.姓名 as 姓名2,j.收入(Select j2.姓名,j2.上级 From 表名 Where 上级 In
(Select j1.姓名,j1.上级 From 表名 Where 上级 In
(select 姓名 From 表名 Where 级别 = 1) j1)j2)j3,(Select j1.姓名,j1.上级 From 表名 Where 上级 In
(select 姓名 From 表名 Where 级别 = 1) j1)j2,
(select 姓名 From 表名 Where 级别 = 1) j1,
表名 j
Where j.上级 = j3.姓名 And j3.上级 = j2.姓名 And j2.上级. = j1.姓名) t
Group by t.姓名1
Select t.姓名1,sum(t.收入)
From
(Select j1.姓名 as 姓名1,j.姓名 as 姓名2,j.收入(Select j2.姓名,j2.上级 From 表名 Where 上级 In
(Select j1.姓名,j1.上级 From 表名 Where 上级 In
(select 姓名 From 表名 Where 级别 = 1) j1)j2)j3,(Select j1.姓名,j1.上级 From 表名 Where 上级 In
(select 姓名 From 表名 Where 级别 = 1) j1)j2,
(select 姓名 From 表名 Where 级别 = 1) j1,
表名 j
Where j.上级 = j3.姓名 And j3.上级 = j2.姓名 And j2.上级. = j1.姓名) t
Group by t.姓名1