create table 工资
(
单位 int,
编号 int,
固定工资 int,
活工资 int,
津贴 int,
应发合计 int,
房租 int,
水电气 int,
应扣工资 int,
实发工资 int
)
select * from 工资
insert into 工资 values(1,0001,489,273,34,0,50,12,0,0)
insert into 工资 values(1,0002,801,448,43,0,65,35,0,0)
insert into 工资 values(6,0003,691,386,51,0,39,61.01,0,0)
insert into 工资 values(6,0004,529,296,73,0,54,45,0,0)
insert into 工资 values(3,0005,585,327,39,0,61,65,0,0)
insert into 工资 values(2,0006,324,181,54,0,43,21,0,0)
insert into 工资 values(3,0007,546,305,63,0,52,34,0,0)
insert into 工资 values(6,0008,789,441,29,0,35,31,0,0)
insert into 工资 values(1,0009,579,324,43,0,46,53,0,0)
insert into 工资 values(2,0010,814,455,67,0,54,29,0,0)
create table 职工(
编号 int,单位 int,姓名 char(10),性别 char(4),出生日期 varchar(40),职称 char(10)
)
select * from 职工
insert into 职工 values (0001,1,'张三','男','1966-5-21','副教授');
insert into 职工 values (0002,1,'李四','男','1967-4-30','副教授')
insert into 职工 values (0003,6,'王五','女','1968-9-21','高工')
insert into 职工 values (0004,6,'陈六','男','1970-7-23','讲师')
insert into 职工 values (0005,3,'何七','女','1972-4-29','讲师')
insert into 职工 values (0006,2,'李明','女','1966-5-4','副教授')
insert into 职工 values (0007,3,'王阳','男','1972-8-1','会计师')
insert into 职工 values (0008,6,'张红','男','1976-4-1','统计师')
insert into 职工 values (0009,1,'陈洋','女','1980-2-1','助教')
insert into 职工 values (0010,2,'成实','女','1978-10-28','助教')
--写出"求出实发工资最高的职工姓名
(
单位 int,
编号 int,
固定工资 int,
活工资 int,
津贴 int,
应发合计 int,
房租 int,
水电气 int,
应扣工资 int,
实发工资 int
)
select * from 工资
insert into 工资 values(1,0001,489,273,34,0,50,12,0,0)
insert into 工资 values(1,0002,801,448,43,0,65,35,0,0)
insert into 工资 values(6,0003,691,386,51,0,39,61.01,0,0)
insert into 工资 values(6,0004,529,296,73,0,54,45,0,0)
insert into 工资 values(3,0005,585,327,39,0,61,65,0,0)
insert into 工资 values(2,0006,324,181,54,0,43,21,0,0)
insert into 工资 values(3,0007,546,305,63,0,52,34,0,0)
insert into 工资 values(6,0008,789,441,29,0,35,31,0,0)
insert into 工资 values(1,0009,579,324,43,0,46,53,0,0)
insert into 工资 values(2,0010,814,455,67,0,54,29,0,0)
create table 职工(
编号 int,单位 int,姓名 char(10),性别 char(4),出生日期 varchar(40),职称 char(10)
)
select * from 职工
insert into 职工 values (0001,1,'张三','男','1966-5-21','副教授');
insert into 职工 values (0002,1,'李四','男','1967-4-30','副教授')
insert into 职工 values (0003,6,'王五','女','1968-9-21','高工')
insert into 职工 values (0004,6,'陈六','男','1970-7-23','讲师')
insert into 职工 values (0005,3,'何七','女','1972-4-29','讲师')
insert into 职工 values (0006,2,'李明','女','1966-5-4','副教授')
insert into 职工 values (0007,3,'王阳','男','1972-8-1','会计师')
insert into 职工 values (0008,6,'张红','男','1976-4-1','统计师')
insert into 职工 values (0009,1,'陈洋','女','1980-2-1','助教')
insert into 职工 values (0010,2,'成实','女','1978-10-28','助教')
--写出"求出实发工资最高的职工姓名
where a.编号=b.编号
and a.应发合计=(select max(应发合计) from 工资)
(
单位 int,名称 char(10)
)
insert into 单位代码 values(1,'办公室')
insert into 单位代码 values(2,'财务科')
insert into 单位代码 values (3,'人事部')
insert into 单位代码 values (4,'理学院')
insert into 单位代码 values (5,'文学院')
insert into 单位代码 values (6,'法学院')
加上这段代码
--写出"统计每个单位的职工人数的sql select命令,查询结果中应包含单位代码,单位名称,职工人数
SELECT
C.单位 单位代码,
C.名称 单位名称,
B.编号 职工编号,
B.姓名 职工姓名,
C.应发合计
FROM (
SELECT 单位, 编号, 应发合计, RANK() OVER (PARTITION BY 应发合计)
FROM 工资
) A, 职工 B, 单位代码 C
WHERE A.编号=B.编号 AND A.单位=C.单位 AND RANK_SALARY=1
select d.实发工资, c.姓名
from f_职工 c,
(select *
from f_工资
where 实发工资 in (select max(实发工资)
from (select a.单位, a.编号, b.姓名, a.实发工资
from f_工资 a, f_职工 b
where a.单位 = b.单位
and a.编号 = b.编号))) d
where c.编号 = d.编号
and c.单位 = d.单位
select 单位, 名称, count(单位) as dwrs
from (select a.单位, a.名称, c.姓名 --,c.编号
from f_单位代码 a, f_工资 b, f_职工 c
where b.单位 = c.单位
and b.编号 = c.编号
and a.单位 = c.单位
and a.单位 = b.单位)
group by 单位, 名称
from 工资 group by 编号 order by 实发工资 desc) where rownum<=1);
编号=(select 编号 from 工资
where (固定工资+活工资+津贴-房租-水电气)=(select max((固定工资+活工资+津贴-房租-水电气))from 工资));