数据库课程设计工资管理系统.docx

上传人:b****7 文档编号:11115659 上传时间:2023-02-25 格式:DOCX 页数:21 大小:152.32KB
下载 相关 举报
数据库课程设计工资管理系统.docx_第1页
第1页 / 共21页
数据库课程设计工资管理系统.docx_第2页
第2页 / 共21页
数据库课程设计工资管理系统.docx_第3页
第3页 / 共21页
数据库课程设计工资管理系统.docx_第4页
第4页 / 共21页
数据库课程设计工资管理系统.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

数据库课程设计工资管理系统.docx

《数据库课程设计工资管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计工资管理系统.docx(21页珍藏版)》请在冰豆网上搜索。

数据库课程设计工资管理系统.docx

数据库课程设计工资管理系统

IFEXISTS(SELECT*FROMsysdatabasesWHEREname='工资管理系统')

dropdatabase工资管理系统

GO

CREATEDATABASE工资管理系统

ONPRIMARY(

NAME=工资管理系统,

FILENAME='F:

\工资管理系统_data.mdf',

SIZE=4MB,

MAXSIZE=6MB,

FILEGROWTH=2MB

LOGON(NAME='工资管理系统_log',

FILENAME='F:

\工资管理系统.ldf',

SIZE=2MB,MAXSIZE=4MB,FILEGROWTH=1MB)

--以上为数据库建立语言~!

 

IFEXISTS(SELECT*FROMsysobjectsWHEREname='员工')

DROPTABLE员工

GO

createtable员工(

工号VARCHAR(50)NOTNULLprimarykey,

姓名VARCHAR(50)NOTNULL,

性别CHAR(6)DEFAULT'男'CHECK(性别IN('男','女')),

年龄intNOTNULL,

籍贯VARCHAR(50)NOTNULL,

身份证号VARCHAR(50)UNIQUENOTNULL,

婚姻情况VARCHAR(50),

学历VARCHAR(50),

部门名称VARCHAR(50)NOTNULL,

工种VARCHAR(50),

职称VARCHAR(50)

)  --员工表建立语言

IFEXISTS(SELECT*FROMsysobjectsWHEREname='部门')

DROPTABLE部门

GO

createtable部门(

部门名称VARCHAR(50)primarykeyNOTNULL,

部门负责人VARCHAR(50)NOTNULL,

部门人数int

--部门表建立语言

 

IFEXISTS(SELECT*FROMsysobjectsWHEREname='基本工资')

DROPTABLE基本工资

GO

createtable基本工资(

职称VARCHAR(50)primarykeyNOTNULL,

基本工资intNOTNULL

--基本工资表建立语言

IFEXISTS(SELECT*FROMsysobjectsWHEREname='津贴')

DROPTABLE津贴

GO

createtable津贴(

工号VARCHAR(50)primarykeyNOTNULL,

生活补贴int,

住房补贴int,

岗位补贴int,

--津贴表建立语言

 

IFEXISTS(SELECT*FROMsysobjectsWHEREname='类型')

DROPTABLE类型

GO

createtable类型(

加班类型VARCHAR(50)primarykey,

每小时工资intnotnull,

--类型表建立语言

 

IFEXISTS(SELECT*FROMsysobjectsWHEREname='考勤')

DROPTABLE考勤

GO

createtable考勤(

工号VARCHAR(50)primarykey,

加班工时int,

缺勤工时int,

加班类型VARCHAR(50),

缺勤类型VARCHAR(50)

--考勤表建立语言

 

createprocedure月工资(@工号VARCHAR(50),@月份int)

as

declare@基本工资int,@考勤int,@加班费int,@缺勤费int

declare@职称VARCHAR(50)

declare@加班工时int,@缺勤工时int

declare@月工资int

declare@加班类型varchar(50),@缺勤类型varchar(50)

select@职称=基本工资.职称,@加班工时=加班工时,

@缺勤工时=缺勤工时,@基本工资=基本工资,@加班类型=加班类型,@缺勤类型=缺勤类型

from员工,基本工资,考勤

where员工.工号=考勤.工号and员工.职称=基本工资.职称and

考勤.工号=@工号and月份=@月份

if(@工号in(select工号from考勤where月份=@月份))

begin

if(@加班类型='白班')

begin

set@加班费=10*@加班工时

end

if(@加班类型='夜班')

begin

set@加班费=15*@加班工时

end

if(@缺勤类型='白班')

begin

set@缺勤费=10*@缺勤工时

end

if(@缺勤类型='夜班')

begin

set@缺勤费=15*@缺勤工时

end

set@月工资=@基本工资+@加班费-@缺勤费

select@月工资as月工资

end

if(@工号notin(select工号from考勤where月份=@月份))

begin

set@月工资=(SELECT基本工资FROM基本工资where职称=(select职称from

员工where工号=@工号))

select@月工资as月工资

end--按照不同工种的基本工资情况和员工的考勤情况产生员工每月的月工资@@@@@!

declare@工号VARCHAR(50),@月份int

set@工号='0B1'

set@月份=10

exec月工资@工号,@月份--0B1这个员工属于财务部,财务部门的基本工资为:

2000

--因为B1这个员工加班(30个小时)(白班)!

应得加班费元(请查看考勤表):

300

--而他又缺勤(夜班)10小时:

应扣除元(请查看考勤表):

150

--综上所述:

B1这个员工的月份的月工资为2150元钱!

declare@工号VARCHAR(50),@月份int

set@工号='0B1'

set@月份=2

exec月工资@工号,@月份--0B1这个员工属于财务部,财务部门的基本工资为:

1800

--因为B1这个员工在二月份既没有加过班,又没有缺过勤!

因此月工资等于基本工资

--综上所述:

B1这个员工的月份的月工资为元钱!

declare@工号VARCHAR(50),@月份int

set@工号='0H2'

set@月份=3

exec月工资@工号,@月份

--0H2这个员工属于行政部,行政部门的基本工资为:

2200

--因为H2这个员工加班(15个小时)(夜班)!

应得加班费元(请查看考勤表):

225

--而他又缺勤(百班)15小时:

应扣除元(请查看考勤表):

150

--综上所述:

H2这个员工的月份的月工资为元钱!

 

createprocedure年度津贴(@工号VARCHAR(50))

as

declare@生活补助int,@住房补助int,@岗位补助int

declare@津贴总和int

set@津贴总和=0

select@生活补助=生活补贴,@住房补助=住房补贴,@岗位补助=岗位补贴

from津贴

where工号=@工号

if(@生活补助isnotnulland@住房补助isnotnulland@岗位补助isnotnull)

begin

set@津贴总和=@津贴总和+@生活补助+@住房补助+@岗位补助

select@津贴总和as年度津贴

end

if(@生活补助isnotnulland@住房补助isnotnulland@岗位补助isnull)

begin

set@津贴总和=@津贴总和+@生活补助+@住房补助

select@津贴总和as年度津贴

end

if(@生活补助isnotnulland@岗位补助isnotnulland@住房补助isnull)

begin

set@津贴总和=@津贴总和+@生活补助+@岗位补助

select@津贴总和as年度津贴

end

if(@住房补助isnotnulland@岗位补助isnotnulland@生活补助isnull)

begin

set@津贴总和=@津贴总和+@住房补助+@岗位补助

select@津贴总和as年度津贴

end

if(@生活补助isnotnulland@岗位补助isnulland@住房补助isnull)

begin

set@津贴总和=@津贴总和+@生活补助

select@津贴总和as年度津贴

end

if(@住房补助isnotnulland@生活补助isnulland@岗位补助isnull)

begin

set@津贴总和=@津贴总和+@住房补助

select@津贴总和as年度津贴

end

if(@岗位补助isnotnulland@住房补助isnulland@生活补助isnull)

begin

set@津贴总和=@津贴总和+@岗位补助

select@津贴总和as年度津贴

end

if(@生活补助isnulland@住房补助isnulland@岗位补助isnull)

begin

set@津贴总和=0

select@津贴总和as年度津贴

end

 

declare@工号VARCHAR(50)

set@工号='0A4'

EXEC年度津贴@工号

declare@工号VARCHAR(50)

set@工号='0A1'

EXEC年度津贴@工号

declare@工号VARCHAR(50)

set@工号='0E1'

EXEC年度津贴@工号

createprocedure年终奖金(@工号VARCHAR(50))

as

declare@生活补助int,@住房补助int,@岗位补助int

declare@津贴总和int,@基本工资int,@年度工资int,@年终奖金int

set@津贴总和=0

set@年度工资=0

set@年终奖金=0

select@生活补助=生活补贴,@住房补助=住房补贴,

@岗位补助=岗位补贴,@基本工资=基本工资

from津贴,员工,基本工资

where员工.工号=@工号and员工.工号=津贴.工号and员工.职称=基本工资.职称

if(@生活补助isnotnulland@住房补助isnotnulland@岗位补助isnotnull)

begin

set@津贴总和=@津贴总和+@生活补助+@住房补助+@岗位补助

select@津贴总和as年度津贴

set@年度工资=@年度工资+@基本工资*12

SELECT@年度工资as年度工资总和

set@年终奖金=@年终奖金+(@津贴总和+@年度工资)/12

select@年终奖金as年终奖金

end

if(@生活补助isnotnulland@住房补助isnotnulland@岗位补助isnull)

begin

set@津贴总和=@津贴总和+@生活补助+@住房补助

select@津贴总和as年度津贴

set@年度工资=@年度工资+@基本工资*12

SELECT@年度工资as年度工资总和

set@年终奖金=@年终奖金+(@津贴总和+@年度工资)/12

select@年终奖金as年终奖金

end

if(@生活补助isnotnulland@岗位补助isnotnulland@住房补助isnull)

begin

set@津贴总和=@津贴总和+@生活补助+@岗位补助

select@津贴总和as年度津贴

set@年度工资=@年度工资+@基本工资*12

SELECT@年度工资as年度工资总和

set@年终奖金=@年终奖金+(@津贴总和+@年度工资)/12

select@年终奖金as年终奖金

end

if(@住房补助isnotnulland@岗位补助isnotnulland@生活补助isnull)

begin

set@津贴总和=@津贴总和+@住房补助+@岗位补助

select@津贴总和as年度津贴

set@年度工资=@年度工资+@基本工资*12

SELECT@年度工资as年度工资总和

set@年终奖金=@年终奖金+(@津贴总和+@年度工资)/12

select@年终奖金as年终奖金

end

if(@生活补助isnotnulland@岗位补助isnulland@住房补助isnull)

begin

set@津贴总和=@津贴总和+@生活补助

select@津贴总和as年度津贴

set@年度工资=@年度工资+@基本工资*12

SELECT@年度工资as年度工资总和

set@年终奖金=@年终奖金+(@津贴总和+@年度工资)/12

select@年终奖金as年终奖金

end

if(@住房补助isnotnulland@生活补助isnulland@岗位补助isnull)

begin

set@津贴总和=@津贴总和+@住房补助

select@津贴总和as年度津贴

set@年度工资=@年度工资+@基本工资*12

SELECT@年度工资as年度工资总和

set@年终奖金=@年终奖金+(@津贴总和+@年度工资)/12

select@年终奖金as年终奖金

end

if(@岗位补助isnotnulland@住房补助isnulland@生活补助isnull)

begin

set@津贴总和=@津贴总和+@岗位补助

select@津贴总和as年度津贴

set@年度工资=@年度工资+@基本工资*12

SELECT@年度工资as年度工资总和

set@年终奖金=@年终奖金+(@津贴总和+@年度工资)/12

select@年终奖金as年终奖金

end

if(@生活补助isnulland@住房补助isnulland@岗位补助isnull)

begin

set@津贴总和=0

select@津贴总和as年度津贴

set@年度工资=@年度工资+@基本工资*12

SELECT@年度工资as年度工资总和

set@年终奖金=@年终奖金+(@津贴总和+@年度工资)/12

select@年终奖金as年终奖金

end

declare@工号VARCHAR(50)

set@工号='0C2'

EXEC年终奖金@工号

--因为0C2这个员工有7000元的补助!

因此他的年度津贴为7000!

(请查看津贴表)

--所以根据年终奖金计算公式(年终奖金=年度工资总和(基本工资(即)*12)+津贴总和)/12

--所以他的年度奖金为:

2083

declare@工号VARCHAR(50)

set@工号='0E9'

EXEC年终奖金@工号

--因为E9这个员工没有补助!

因此他的年度津贴0!

(请查看津贴表)

--所以根据年终奖金计算公式(年终奖金=年度工资总和(基本工资*12)+津贴总和)/12

--所以他的年度奖金和她的基本工资一样为1600元

declare@工号VARCHAR(50)

set@工号='0H1'

EXEC年终奖金@工号

--因为H1这个员工的补助总和为9000!

因此他的年度津贴为9000!

(请查看津贴表)

--所以根据年终奖金计算公式(年终奖金=年度工资总和(基本工资*12)+津贴总和)/12

--所以他的年度奖金为2950元

创建关键触发器

createtrigger工资

on基本工资

forupdate

as

ifupdate(基本工资)

begin

rollbacktransaction

end--基本工资为公司内部规定.一旦生成!

不允许修改

--如果规定需要调整工资!

须删除本触发器后,再做修改

createtrigger员工津贴

on津贴

forupdate

as

ifupdate(生活补贴)

begin

rollbacktransaction

end

ifupdate(岗位补贴)

begin

rollbacktransaction

end

ifupdate(住房补贴)

begin

rollbacktransaction

End--津贴为年度津贴.一旦生成!

不允许修改

--(津贴按员工的表现,一年生成一次)

createtrigger员工考勤

on考勤

forupdate

as

ifupdate(加班工时)

begin

rollbacktransaction

end

ifupdate(缺勤工时)

begin

rollbacktransaction

end--考勤表记录着每个员工的日常表现!

一旦生成!

不允许修改

createtrigger删除员工

on员工

insteadofdelete

as

print'未经允许,不可随意删除员工信息'

--员工信息不可随意删除

sp_helptext删除员工

sp_helptext员工考勤

sp_helptext员工津贴

sp_helptext工资

select职称,基本工资

from基本工资

select部门名称,部门负责人,部门人数

from部门

createview员工_部门_基本工资

as

select员工.工号,姓名,员工.职称,员工.部门名称,基本工资

from员工,部门,基本工资

where员工.职称=基本工资.职称and部门.部门名称=员工.部门名称

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1