读书人

SQL视图,求解,该如何处理

发布时间: 2013-09-11 16:59:40 作者: rapoo

SQL视图,求解
有以下三个表
1.职员表:
职员ID 部门ID 职员姓名
2.部门表:
部门ID 部门
3.工资表:
序号ID 职员ID 月份 工整

请设计一个视图,查找出研发部2012年1月至2012年7月 工资最高的职员姓名,工资总额及平均工资
[最优解释]

create   view   myview   
as
select a.职员姓名,sum(b.工资) as 工资总额,avg(b.工资) as 平均工资
from 职员表 a,工资表 b,部门表 c
where a.职员ID=b.职员ID and (部门= '研发部 ' and a.部门ID=c.部门ID)
and (月份> = '2012-1-1 ' and 月份 <= '2012-7-31 ')
and b.工资=(select max(工资) from 工资表)

[其他解释]
create view v_q
as
select top 1 a.职员姓名,sum(c.工资) as 工资总额,avg(c.工资) as 平均工资
from
职员表 a,部门表 b,工资表 c
where
a.职员id=c.职员id and a.部门id=b.部门id
where
b.部门='研发部' and c.月份 between '2012-01' and '2012-07'
group by
a.职员姓名
order by
sum(c.工资) desc

[其他解释]
CREATE VIEW test 
AS
SELECT TOP 1 职员姓名,SUM(工资)总额,AVG (工资)平均
FROM 职员表 a INNER JOIN 部门表 b ON a.部门ID=b.部门ID
INNER JOIN 工资表 c ON a.职员ID =c.职员ID
WHERE b.部门='研发部' AND c.月份 BETWEEN '1' AND '7'--猜测你的数据而已
GROUP BY 职员姓名
ORDER BY 工资 desc

漏了个条件
[其他解释]
是总工资最高还是某个月?

MAX,SUM,AVG

参考着用。
[其他解释]
CREATE VIEW test 
AS
SELECT TOP 1 职员姓名,SUM(工资)总额,AVG (工资)平均
FROM 职员表 a INNER JOIN 部门表 b ON a.部门ID=b.部门ID
INNER JOIN 工资表 c ON a.职员ID =c.职员ID
WHERE b.部门='研发部' AND c.月份 BETWEEN '1' AND '7'--猜测你的数据而已
GROUP BY 职员姓名
ORDER BY 工资


我的异常网推荐解决方案:软件开发者薪资,http://www.myexception.cn/other/1391128.html

读书人网 >SQL Server

热点推荐