我做一个系统
目的:员工加班时间、休假的录入和查询。第一季度:员工假期=加班时间合计-休假合计。其中有个小环节,就是单位要求对员工假期每一季度进行一次转换。
也就是如果员工假期超过10天按10天计算,不足有多少算多少加到下一个季度的加班时间里。下一季度:员工假期=加班时间合计-休假合计+上季度转化来的假期。
我用asp+sql 应该怎么实现这个自动转换????
怎么建这个表。我有加班记录表,休假记录表,员工基本数据表。好要什么?
数据库的数据冗余太多,重新设计如下:
表1,员工姓名,部门代号) 存储员工信息资料
表2,部门名称) 存储部门的信息资料
表3 存储每一次每一员工的加班情况
表4 存储每一次每一员工的休假情况
表5 存储上次结算结果
员工加班的录入:
objRs.open "select * from 表3",conn,3,2
objRs.addnew
objRs.("员工代号")=员工代号
objRs.("加班时间")=加班时间
objRs.("加班地点")=加班地点
objRs.("加班天数")=加班天数
objRs.update
员工休假的录入:
objRs.open "select * from 表4" ,conn,3,2
objRs.addnew
objRs.("员工代号")=员工代号
objRs.("休假时间")=休假时间
objRs.("休假天数")=休假天数
objRs.update
查询
sqlstr="select 表1.员工姓名,表2.部门名称,sum(表3.加班天数),sum(表4.休假天数),上季度转化来的假期
form 表1,表2,表3,表4,表5
where 表1.部门代码=表2.部门代码
and 表1.员工代号=表2.员工代号
and 表3.员工代号=表1.员工代号
and 表4.员工代号=表1.员工代号
and 表5.员工代号=表1.员工代号"
季度结算:
首先查询上次结算日期,判断需不需要结算,如果需要:
objRs.open "select * from 表1",conn,3,3
for i=1 to objRs.recordcount
if objRs.eof then
exit for
else
Id = objRs("pID")
objRs2.open "select sum(表3.加班天数)-sum(表4.休假天数)+上季度转化来的假期
from 表1,表3,表4,表5 where and 表3.员工代号=表1.员工代号
and 表4.员工代号=表1.员工代号
and 表5.员工代号=表1.员工代号
and 表1.pID="& objRs("pID"),conn,3,3
spare = objRs2(1)
if spare>10 then spare=10
objRs2.open "select * from 表5 where 表5.员工代号="& Id
objRs2.Addnew
objRs2("员工代号") = Id
objRs2("上季度转化来的假期") = spare
objRs2("结算日期") = new()
objRs2.updata
objRs2.open "delete from 表4,表3
where and 表3.员工代号="&Id&"
and 表4.员工代号="&Id&""
end if
objRs.NextMove
next
此处表达式,只表示一种思路,具体写法就要看你了。
希望我们能叫个朋友。