欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于sql语句解决思路

更新时间: 2014-01-05 02:31:30 责任编辑: Author_N1

 

关于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 部门编码
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:31:30
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/10884/
本文WWW.DOC100.NET DOC100.NET版权所有。