论文部分内容阅读
[摘 要] 随着信息技术的日益发展,在高校的财务工作中,会计电算化已经逐步替代手工会计,它对提高工作效率、规范财务工作起到了至关重要的作用。本文就如何运用SQL数据库技术来简化财务人员在奖金发放中的工作程序,从而实现快速、准确地将各个部门分散的奖金发放表汇总为一张总表,最终使得奖金发放工作变得简单起来进行分析。
[关键词] 奖金发放;汇总;SQL;表
[中图分类号]F232[文献标识码]B[文章编号]1673-0194(2008)07-0020-04
在财务部门的日常工作中,经常会遇到这样的情况:每逢奖金发放时刻,同样的发放方案,各个部门所涉及的人员不尽相同,奖金的项目也大不相同。以高校为例,如某位老师既做班主任又有任课还兼行政,那么就可能存在所在班级的系部做班主任费,所任课的系部做课时费,所兼职的行政部门做岗位津贴费,一个人要在3个部门3张表上反映的情况。财务部门如何在最短的时间内准确地将各部门分散的发放表汇总为一张总表,是迫切需要解决的问题。如果采用Excel手工操作的办法,人少的单位还可以,无非多花费点时间,将若干表输入到一张表中,从而计算出每个人的应发数额。但是对于一个拥有成百上千甚至是几千人的大单位来说,这种方法就暴露出了它自身的弱点,不仅费时、费力,而且极易出错。笔者在高校财务工作实践中逐渐摸索出利用SQL数据库将若干张表合并成为一张新表的方法,能够使财务人员从繁重的数字堆中解脱出来,从而快速计算出每个人的奖金发放金额。
一、 建立Excel表模型
先将各部门上交的校内津贴发放表按照不同的发放项目进行汇总。例如校内津贴的项目为工资、奖金、加班费,那么就整理出3张表a、b、c,结构分别为职工编号、姓名、工资/奖金/加班费。另外,也是最重要的一环,就是创建一张“职工字典表”,列出本单位全体职工的职工编号、姓名,取名d。
二、将表a、b、c、d分别导入SQL数据库
第一步,在SQL数据库中创建一个子数据库,姑且取名gz;
第二步,在gz数据库中创建4张表,例如取名表A、B、C、D,分别对应表a、b、c、d。
第三步,分别将表a、b、c、d导入到数据库对应的表A、B、C、D中。
三、在SQL查询分析器中,输入SQL语句
“select *,工资 奖金 加班费 as total from(select d.bh,d.xm,
case when a.工资 is null then 0 else a.工资 end as 工资,
case when b.奖金 is null then 0 else b.奖金 end as 奖金,
case when c.加班费 is null then 0 else c.加班费 end as 加班费, from jggz_zd d
left join A a on d.bh=a.bh
left join B b on d.bh=b.bh
left join C c on d.bh=c.bh) jggz”,查询的结果即为一张结构为职工编号、姓名、工资、奖金、加班费、合计总额的汇总表。
四、实际运用
某高校每月初都要发放一笔校内津贴,它涉及岗位津贴、课时费、辅导员津贴、加班费、值班费、其他等6个项目。
第一步,将各部门上报的校内津贴表进行汇总,整理出6张表,结构分别为职工编号、姓名、岗位津贴/课时费/辅导员津贴/加班费/值班费/其他以及一张包含职工编号和姓名的全体职工字典表(见表1~表7)。
第二步,打开SQL数据库的企业管理器,创建一个名为gz的数据库。在SQL Serve企业管理器窗口中,在“控制台根目录”窗口对话框内,选择“操作”下拉菜单中的“新建数据库”,进入“数据库属性”窗口,在“常规”标签中输入想要建立的数据库的名字(例如gz),单击“确定”按钮建立数据库(如图1所示)。当然,也可以在查询分析器窗口中用T-SQL命令创建数据库,输入SQL语句“CREATE DATABASE gz”。
然后点击“下一步”,在 “选择源表和视图”的界面中,在“Sheet1$”的“源”前打“√”,在“目的”中选择“[gz].[dbo].[gz_1]”(如图6所示),最后点击“下一步”完成即可。
第五步,打开SQL数据库的查询分析器,输入SQL语句“select *,gwjt ksf fdy jb zb qt as total from(select g.bh,g.xm,
case when a.gwjt is null then 0 else a.gwjt end as gwjt,
case when b.ksf is null then 0 else b.ksf end as ksf,
case when c.fdy is null then 0 else c.fdy end as fdy,
case when d.jb is null then 0 else d.jb end as jb,
case when e.zb is null then 0 else e.zb end as zb,
case when f.qt is null then 0 else f.qt end as qt
from jggz_zd g
left join gz_1 a on g.bh=a.bh
left join gz_2 b on g.bh=b.bh
left join gz_3 c on g.bh=c.bh
left join gz_4 d on g.bh=d.bh
left join gz_5 e on g.bh=e.bh
left join gz_6 f on g.bh=f.bh) jggz”,得出如下查询结果(如图7所示)。
如果想要将查询结果保存为Excel形式,就要首先将查询结果全选,然后点右键“另存为”,给文件命名比如AA,最后打开AA,在顶端插入一行,填入对应的字段名即可。这样,一份完整准确的校内津贴发放汇总表就完成了。
五、结束语
SQL数据库具有强大的数据处理和数据存取功能,善于利用SQL强大的查询功能会给工作带来极大的便利,收到事半功倍的效果,利用SQL数据库来汇总奖金发放人员的信息,快捷准确,非常实用。
主要参考文献
[1] 黄维通. SQL Server 2000简明教程[M]. 北京:清华大学出版社,2002.
[2] 陆昌辉,吴晓华. SQL Server 2000核心技术解密[M]. 北京:宇航出版社,北京希望电子出版社,2002.
[3] 史国友,徐鹏. Visual Foxpro教程与试题解析[M]. 北京:北京希望电子出版社,2002.
[4] 周晓玉,杜菁.Foxpro 简明教程[M]. 北京:电子工业出版社,1999.
[5] 张海兰. 网络信息时代的高校财务管理[J]. 教育财会研究,2006,(2).
[关键词] 奖金发放;汇总;SQL;表
[中图分类号]F232[文献标识码]B[文章编号]1673-0194(2008)07-0020-04
在财务部门的日常工作中,经常会遇到这样的情况:每逢奖金发放时刻,同样的发放方案,各个部门所涉及的人员不尽相同,奖金的项目也大不相同。以高校为例,如某位老师既做班主任又有任课还兼行政,那么就可能存在所在班级的系部做班主任费,所任课的系部做课时费,所兼职的行政部门做岗位津贴费,一个人要在3个部门3张表上反映的情况。财务部门如何在最短的时间内准确地将各部门分散的发放表汇总为一张总表,是迫切需要解决的问题。如果采用Excel手工操作的办法,人少的单位还可以,无非多花费点时间,将若干表输入到一张表中,从而计算出每个人的应发数额。但是对于一个拥有成百上千甚至是几千人的大单位来说,这种方法就暴露出了它自身的弱点,不仅费时、费力,而且极易出错。笔者在高校财务工作实践中逐渐摸索出利用SQL数据库将若干张表合并成为一张新表的方法,能够使财务人员从繁重的数字堆中解脱出来,从而快速计算出每个人的奖金发放金额。
一、 建立Excel表模型
先将各部门上交的校内津贴发放表按照不同的发放项目进行汇总。例如校内津贴的项目为工资、奖金、加班费,那么就整理出3张表a、b、c,结构分别为职工编号、姓名、工资/奖金/加班费。另外,也是最重要的一环,就是创建一张“职工字典表”,列出本单位全体职工的职工编号、姓名,取名d。
二、将表a、b、c、d分别导入SQL数据库
第一步,在SQL数据库中创建一个子数据库,姑且取名gz;
第二步,在gz数据库中创建4张表,例如取名表A、B、C、D,分别对应表a、b、c、d。
第三步,分别将表a、b、c、d导入到数据库对应的表A、B、C、D中。
三、在SQL查询分析器中,输入SQL语句
“select *,工资 奖金 加班费 as total from(select d.bh,d.xm,
case when a.工资 is null then 0 else a.工资 end as 工资,
case when b.奖金 is null then 0 else b.奖金 end as 奖金,
case when c.加班费 is null then 0 else c.加班费 end as 加班费, from jggz_zd d
left join A a on d.bh=a.bh
left join B b on d.bh=b.bh
left join C c on d.bh=c.bh) jggz”,查询的结果即为一张结构为职工编号、姓名、工资、奖金、加班费、合计总额的汇总表。
四、实际运用
某高校每月初都要发放一笔校内津贴,它涉及岗位津贴、课时费、辅导员津贴、加班费、值班费、其他等6个项目。
第一步,将各部门上报的校内津贴表进行汇总,整理出6张表,结构分别为职工编号、姓名、岗位津贴/课时费/辅导员津贴/加班费/值班费/其他以及一张包含职工编号和姓名的全体职工字典表(见表1~表7)。
第二步,打开SQL数据库的企业管理器,创建一个名为gz的数据库。在SQL Serve企业管理器窗口中,在“控制台根目录”窗口对话框内,选择“操作”下拉菜单中的“新建数据库”,进入“数据库属性”窗口,在“常规”标签中输入想要建立的数据库的名字(例如gz),单击“确定”按钮建立数据库(如图1所示)。当然,也可以在查询分析器窗口中用T-SQL命令创建数据库,输入SQL语句“CREATE DATABASE gz”。
然后点击“下一步”,在 “选择源表和视图”的界面中,在“Sheet1$”的“源”前打“√”,在“目的”中选择“[gz].[dbo].[gz_1]”(如图6所示),最后点击“下一步”完成即可。
第五步,打开SQL数据库的查询分析器,输入SQL语句“select *,gwjt ksf fdy jb zb qt as total from(select g.bh,g.xm,
case when a.gwjt is null then 0 else a.gwjt end as gwjt,
case when b.ksf is null then 0 else b.ksf end as ksf,
case when c.fdy is null then 0 else c.fdy end as fdy,
case when d.jb is null then 0 else d.jb end as jb,
case when e.zb is null then 0 else e.zb end as zb,
case when f.qt is null then 0 else f.qt end as qt
from jggz_zd g
left join gz_1 a on g.bh=a.bh
left join gz_2 b on g.bh=b.bh
left join gz_3 c on g.bh=c.bh
left join gz_4 d on g.bh=d.bh
left join gz_5 e on g.bh=e.bh
left join gz_6 f on g.bh=f.bh) jggz”,得出如下查询结果(如图7所示)。
如果想要将查询结果保存为Excel形式,就要首先将查询结果全选,然后点右键“另存为”,给文件命名比如AA,最后打开AA,在顶端插入一行,填入对应的字段名即可。这样,一份完整准确的校内津贴发放汇总表就完成了。
五、结束语
SQL数据库具有强大的数据处理和数据存取功能,善于利用SQL强大的查询功能会给工作带来极大的便利,收到事半功倍的效果,利用SQL数据库来汇总奖金发放人员的信息,快捷准确,非常实用。
主要参考文献
[1] 黄维通. SQL Server 2000简明教程[M]. 北京:清华大学出版社,2002.
[2] 陆昌辉,吴晓华. SQL Server 2000核心技术解密[M]. 北京:宇航出版社,北京希望电子出版社,2002.
[3] 史国友,徐鹏. Visual Foxpro教程与试题解析[M]. 北京:北京希望电子出版社,2002.
[4] 周晓玉,杜菁.Foxpro 简明教程[M]. 北京:电子工业出版社,1999.
[5] 张海兰. 网络信息时代的高校财务管理[J]. 教育财会研究,2006,(2).