员工工资sql

创建表

create table bm(id int,mc varchar(50))

create table ry(id int,mz varchar(50), gz double ,mcid int)

insert into bm values (1,'it')
insert into bm (id,mc) values (2,'sales')

insert into ry values (1,'Joe',70000,1)
insert into ry values (2,'Henry',80000,2)
insert into ry values (3,'Sam',60000,2);


insert into ry values (4,'Max',90000,1) ;
insert into ry values (5,'Janet',69000,1);
insert into ry values (6,'Randy1',85000,1);
insert into ry values (7,'JACK',85000,1);

一、每个部门前两个员工的工资

select emb1.mz ,emb1.gz,bm1.mc from bm as bm1,ry as emb1 where bm1.id=emb1.mcid
and (select count(DISTINCT gz) from ry as emb2 where emb1.mcid=emb2.mcid and emb2.gz>emb1.gz)<2
ORDER BY mc,gz desc

二、每个部门员工的平均工资

select avg(gz) as ‘平均值’,bm1.mc as '部门'  from ry as ry1,bm as bm1 where  ry1.mcid=bm1.id GROUP BY ry1.mcid

三、工资超过平均工资的员工信息

select ry1.mz as '名字',ry1.gz as '工资' ,ry1.mcid as '部门id',bm1.mc as '部门' from ry as ry1,bm as bm1,
(select avg(gz) as avg_gz,ry2.mcid as avgid from ry as ry2 group by ry2.mcid) as tb1
where  ry1.mcid=tb1.avgid and ry1.gz>tb1.avg_gz and ry1.mcid=bm1.id order BY ry1.mcid desc, ry1.gz desc
四、各个部门的总工资

SELECT bm.mc as '名称' ,sum(gz) as '总工资' from ry ,bm  where ry.mcid=bm.id group by ry.mcid 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值