1.怎么查询某年员工工资有3个月都大于20000的信息
它是这样的一个结构,A表工号,姓名,部门编号 B表 工号,应发工资,时间
如:2013年有3个月工资都大于20000的员工信息,
查询内容:工号,姓名,部门编号
2.员工薪资表(t_salary)结构:工号,姓名,部门编号,应发工资,月份
筛选条件:201008月份工资中,统计出各部门中工资高于本部门平均工资的人数。
查询内容:部门编码,人数。
麻烦大家帮忙解决下,谢谢!
------解决方案--------------------
1.怎么查询某年员工工资有3个月都大于20000的信息
它是这样的一个结构,A表工号,姓名,部门编号 B表 工号,应发工资,时间
如:2013年有3个月工资都大于20000的员工信息,
查询内容:工号,姓名,部门编号
select 工号,姓名,部门编号
from tb
where 时间>'2013'
group by 工号,姓名,部门编号
having count(case when 应发工资>20000 then 1 end)>=3
2.员工薪资表(t_salary)结构:工号,姓名,部门编号,应发工资,月份
筛选条件:201008月份工资中,统计出各部门中工资高于本部门平均工资的人数。
查询内容:部门编码,人数。
select 部门编号,count(*)
from tb A,(
select 工号,avg(应发工资) as 应发工资
from tb
where 月份='201008'
group by 工号
)B
where A.工号=B.工号 and A.应发工资>B.应发工资
group by 部门编号
------解决方案--------------------
1.怎么查询某年员工工资有3个月都大于20000的信息
它是这样的一个结构,A表工号,姓名,部门编号 B表 工号,应发工资,时间
如:2013年有3个月工资都大于20000的员工信息,
查询内容:工号,姓名,部门编号
select 工号,姓名,部门编号
from A表
where 时间 between '2013-01-01' and '2013-12-31'
group by 工号,姓名,部门编号
having count(*)>=3
------解决方案--------------------
2.员工薪资表(t_salary)结构:工号,姓名,部门编号,应发工资,月份
筛选条件:201008月份工资中,统计出各部门中工资高于本部门平均工资的人数。
查询内容:部门编码,人数。
select 部门编码,count(*) as 人数
from 员工薪资表 t
where 月份=201008
and 应发工资>(select avg(应发工资) from 员工薪资表 where 部门编号=t.部门编号)
group by 部门编码