sql中已知职工表,部门表,工资表求各部门职工平均工资
已知职工表:职工号,姓名,性别,出生日期,党员与否,参工时间,部门号。部门表:部门号,部门名。工资表:职工号,姓名,日期,工资。现要1:显示所有职工年龄,2:求各部门党员...
已知职工表:职工号,姓名,性别,出生日期,党员与否,参工时间,部门号。部门表:部门号,部门名。工资表:职工号,姓名,日期,工资。现要1:显示所有职工年龄,2:求各部门党员人数,3显示所有职工工号姓名平均公资4显示所有职工工号姓名部门名和2004.2月工资并按部门名排续5:显示各部门名该部门所有职工平均工资6显示所有平均工资高于1200的部门和对应的平均工资7:显示所有职工号,姓名,部门类形,其中财务处和人事处属主管部门,市场部属市场部门
展开
2个回答
展开全部
1 select 姓名,year(getdate())-year(出生日期) as 年龄 from 职工表
2 select e.部门名,count(a.党员与否)as 党员人数 from 职工表 a,部门表 e where a.党员与否='是' and a.部门号=e.部门号 group by e.部门名
3 select a.职工号,a.姓名,avg(b.工资)as 平均工资 from 职工表 a,工资表 b where a.职工号=b.职工号 group by a.职工号,a.姓名
4 select a.职工号,a.姓名,e.部门名,sum(b.工资) as '2004.2' from 职工表 a,工资表 b,部门表 e where a.职工号=b.职工号 and a.部门号=e.部门号
and b.日期 between '2004-02-01' and '2004-02-29' group by a.职工号,a.姓名,e.部门名 order by e.部门名
5 select e.部门名,avg(b.工资)as 平均工资 from 职工表 a,工资表 b,部门表 e
where a.职工号=b.职工号 and a.部门号=e.部门号 group by e.部门名
6 select e.部门名,avg(b.工资)as 平均工资 from 职工表 a,工资表 b,部门表 e
where a.职工号=b.职工号 and a.部门号=e.部门号 group by e.部门名 having avg(b.工资)>1200
7 select a.职工号,a.姓名,case when e.部门名='财务处' or e.部门名='人事处' then '主管部门'
wheb e.部门名='市场部' then '市场部门' end as 部门类型
from 职工表 a,部门表 e where a.部门号=e.部门号
sqlserver亲测、完全OK、职工表部门号是外键依赖于部门表部门号,工资表职工号外键依赖于职工表的职工号。表结构没问题。
2 select e.部门名,count(a.党员与否)as 党员人数 from 职工表 a,部门表 e where a.党员与否='是' and a.部门号=e.部门号 group by e.部门名
3 select a.职工号,a.姓名,avg(b.工资)as 平均工资 from 职工表 a,工资表 b where a.职工号=b.职工号 group by a.职工号,a.姓名
4 select a.职工号,a.姓名,e.部门名,sum(b.工资) as '2004.2' from 职工表 a,工资表 b,部门表 e where a.职工号=b.职工号 and a.部门号=e.部门号
and b.日期 between '2004-02-01' and '2004-02-29' group by a.职工号,a.姓名,e.部门名 order by e.部门名
5 select e.部门名,avg(b.工资)as 平均工资 from 职工表 a,工资表 b,部门表 e
where a.职工号=b.职工号 and a.部门号=e.部门号 group by e.部门名
6 select e.部门名,avg(b.工资)as 平均工资 from 职工表 a,工资表 b,部门表 e
where a.职工号=b.职工号 and a.部门号=e.部门号 group by e.部门名 having avg(b.工资)>1200
7 select a.职工号,a.姓名,case when e.部门名='财务处' or e.部门名='人事处' then '主管部门'
wheb e.部门名='市场部' then '市场部门' end as 部门类型
from 职工表 a,部门表 e where a.部门号=e.部门号
sqlserver亲测、完全OK、职工表部门号是外键依赖于部门表部门号,工资表职工号外键依赖于职工表的职工号。表结构没问题。
展开全部
1 select *,year(getdate())-year(出生日期) 工龄 from 职工表
2 select count(*),部门名 from 职工表 e, 部门表 p where e.部门号=p.部门号 and e.党员与否=1 group by e.部门号
3 select e.姓名,平均工资 from 职工表 e, (select avg(工资) 平均工资,职工号 from 工资表 group by 职工号) as s where e.职工号=s.职工号
4 select 职工号,姓名,部门名,工资 from 职工表 e,部门表 p,工资表 s where e.部门号=p.部门号 and e.职工号=s.职工号 and s.日期>'2004-1-31' and s.日期<'2004-3-1' order by e.部门名
5 select 部门名,avg(工资) 平均工资 from 职工表 e,部门表 p,工资表 s where e.部门号=p.部门号 and e.职工号=s.职工号
6 select * from (select 部门名,avg(工资) 平均工资 from 职工表 e,部门表 p,工资表 s where e.部门号=p.部门号 and e.职工号=s.职工号 group by e.部门号,p.部门名) as a where a. 平均工资>1200
7 select 职工号,姓名,case when 部门名='市场部' then '市场部门' when 部门名='财务部' then '主管部门' when 部门名='人事处' then '主管部门' end as 部门类型 from 职工表 e, 部门表 p where e.部门号=p.部门号
2 select count(*),部门名 from 职工表 e, 部门表 p where e.部门号=p.部门号 and e.党员与否=1 group by e.部门号
3 select e.姓名,平均工资 from 职工表 e, (select avg(工资) 平均工资,职工号 from 工资表 group by 职工号) as s where e.职工号=s.职工号
4 select 职工号,姓名,部门名,工资 from 职工表 e,部门表 p,工资表 s where e.部门号=p.部门号 and e.职工号=s.职工号 and s.日期>'2004-1-31' and s.日期<'2004-3-1' order by e.部门名
5 select 部门名,avg(工资) 平均工资 from 职工表 e,部门表 p,工资表 s where e.部门号=p.部门号 and e.职工号=s.职工号
6 select * from (select 部门名,avg(工资) 平均工资 from 职工表 e,部门表 p,工资表 s where e.部门号=p.部门号 and e.职工号=s.职工号 group by e.部门号,p.部门名) as a where a. 平均工资>1200
7 select 职工号,姓名,case when 部门名='市场部' then '市场部门' when 部门名='财务部' then '主管部门' when 部门名='人事处' then '主管部门' end as 部门类型 from 职工表 e, 部门表 p where e.部门号=p.部门号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询