关于工资库的例子

来源:互联网 发布:linux配置samba服务 编辑:程序博客网 时间:2024/05/16 09:48

建立工资库及相关视图的建立!

 

create database factory
use factory
create table worker(
  职工号 int not null primary key,
  姓名 char (8),
  性别 char (2),
  出生日期 datetime ,
  党员否 bit,
  参加工作 datetime,
  部门号 int  )

create table depart(
  部门号 int  not null primary key,
  部门名 char (10))

create table salary(
  职工号 int  not null ,
  日期 datetime  not null,
  工资 decimal null
CONSTRAINT [PK_salary] PRIMARY KEY CLUSTERED
(
职工号,
日期
)
)
insert depart values (1,'财务处')
insert depart values (2,'人事处')
insert depart values (3,'市场部')

insert worker values (01,'孙华','男','1952/01/03','1','1970/10/10','1')
insert worker values (03,'陈明','男','1945/05/08','0','1965/01/01','2')
insert worker values (07,'程西','女','1980/06/10','0','02/07/10','1')
insert worker values (02,'孙天奇','女','1965/03/10','1','1987/07/10','2')
insert worker values (09,'刘夫文','男','1942/01/11','0','1960/08/10','2')
insert worker values (10,'陈涛','男','1958/02/10','1','1984/07/12','2')
insert worker values (14,'李艺','女','1963/02/10','0','1990/07/20','3')
insert worker values (12,'李涵','男','1965/04/19','1','1989/07/10','3')
insert worker values (15,'魏杰','女','1970/01/10','0','1993/07/10','3')
insert worker values (06,'欧阳少兵','男','1971/12/09','1','1992/07/20','3')
insert worker values (04,'李华','男','1956/08/07','0','1983/07/20','3')
insert worker values (05,'余慧','男','1980/12/04','0','2002/07/10','3')
insert worker values (08,'张旗','男','1980/11/10','0','2002/07/10','2')
insert worker values (11,'刘欢','男','1952/10/08','0','1970/01/07','1')
insert worker values (13,'王小艳','女','1964/02/10','0','1993/07/10','3')


insert salary values (1,'04/02/03',1206.5)
insert salary values (2,'04/02/03',905)
insert salary values (3,'04/02/03',1355.6)
insert salary values (4,'04/02/03',1505.5)
insert salary values (5,'04/02/03',730.0)
insert salary values (6,'04/02/03',1085.0)
insert salary values (7,'04/02/03',755.8)
insert salary values (8,'04/02/03',733.0)
insert salary values (9,'04/02/03',2011.8)
insert salary values (10,'04/02/03',1250.8)
insert salary values (11,'04/02/03',1255.0)
insert salary values (12,'04/02/03',1350.0)
insert salary values (13,'04/02/03',1205.0)
insert salary values (14,'04/02/03',1005.6)
insert salary values (15,'04/02/03',1105.0)

insert salary values (1,'04/01/01',1201.5)
insert salary values (2,'04/01/01',900.0)
insert salary values (4,'04/01/01',1500.5)
insert salary values (6,'04/01/01',1085.0)
insert salary values (3,'04/01/01',1350.6)
insert salary values (5,'04/01/01',725)
insert salary values (7,'04/01/01',750.8)
insert salary values (8,'04/01/01',728)
insert salary values (9,'04/01/01',2006.8)
insert salary values (11,'04/01/01',1250)
insert salary values (10,'04/01/01',1245.8)
insert salary values (12,'04/01/01',1345.0)
insert salary values (13,'04/01/01',1200.0)
insert salary values (14,'04/01/01',1000.6)
insert salary values (15,'04/01/01',1100.0)
1、 建立视图view1,查询所有职工的职工号、姓名、部门名和2004年2月份工资,并按部门名顺序排列;
2、 建立视图view2,查询所有职工的职工号、姓名和平均工资;
3、 建立视图view3,查询各部门和该部门的所有职工平均工资;
如何做?
--1
create view view1
as
select top 20 worker.职工号,worker.姓名,depart.部门名,salary.工资
from  worker,depart,salary
where year(日期)='2004'and month(日期)='02'
order by 部门名


--2
create view  view2
as
select worker.职工号,worker.姓名,avg(工资)as 平均工资 from worker,salary
where  worker.职工号=salary.职工号
GROUP BY worker.职工号,worker.姓名


--3
create view view3
as
select depart.部门名,avg(工资)as 所有职工平均工资
from worker,depart,salary
where worker.部门号=depart.部门号 and worker.职工号=salary.职工号
GROUP BY depart.部门名