首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

关于sql语句解决思路

2013-10-21 
关于sql语句1.怎么查询某年员工工资有3个月都大于20000的信息它是这样的一个结构,A表工号,姓名,部门编号 B

关于sql语句
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 部门编码

热点排行