好贷网好贷款

考勤数据处理,很值得大家挑战 100feixianxxx]

发布时间:2016-12-5 8:35:07 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"考勤数据处理,很值得大家挑战 100feixianxxx]",主要涉及到考勤数据处理,很值得大家挑战 100feixianxxx]方面的内容,对于考勤数据处理,很值得大家挑战 100feixianxxx]感兴趣的同学可以参考一下。

有如下世纪4个表: 表1: 员工原始打卡数据表(CardData) 工号     打卡日期      打卡时间 Ecode   CardDate        DTime --------------------------------------- G0520 2007-06-18 08:13 G0520 2007-06-18 18:29 G0520 2007-06-19 08:05 G0520 2007-06-19 18:03 G0520 2007-06-21 20:20 G0520 2007-06-22 17:30 G0520 2007-06-22 06:21 G0520 2007-06-23 07:53 G0520 2007-06-23 19:56 G0520 2007-06-23 20:00 G0520 2007-06-24 06:37 表2: 班次类型表(ClassType) 班次编号 上班时间 下班时间  中间下班时间  中间上班时间  Cno      CFTime   CLTime      CETime      CMTime -------------------------------------------------    A   08:30    17:30        12:30     13:30    B   08:30    17:00        12:30     13:00    C   07:30    16:30 12:00     12:00    D   19:30    04:30 00:00     00:00    E   07:00    16:00 11:00     12:00    F   19:00    04:00 23:00     00:00    G   20:30    05:00 00:30       01:00    H   08:00    16:30 12:00     12:30    I   20:00    04:30 00:30     01:00    J   09:00    18:00 13:30     14:00    K   21:00    06:00 01:30     02:00    L   09:30    18:30 14:00     14:30    M   21:30    06:30 02:00     02:30    N   20:30    05:30 01:00     01:30    O   12:00    20:30 16:00     16:00    P   08:00    17:00 12:00     13:00    Q   20:00    05:00 00:00     01:00 表3: 员工排班表(ArrayClass) 排班表是每个员工每月为一条记录,字母代表该员工当天上班班次, 如带*号则表示当天该员工休息. ---------------------------------------------------------------------------- 工号    姓名   年月份   1号  2号  3号  4号 5号  6号   7号  8号  9号 10号  11号 Ecode  EName   CDate  CDay1 CDay2CDay3CDay4CDay5CDay6CDay7CDay8CDay9CDay10CDay11 G0520  黄埔江  2007-06 G    G    G    G   G G*    B    B B    B   B ---------------------------------------------------------------------------- 12号   13号    14号    15号    16号    17号    18号    19号    20号    21号 CDay12 CDay13 CDay14  CDay15  CDay16  CDay17  CDay18  CDay19  CDay20  CDay21B B* B B B B B B B* G ----------------------------------------------------------------------------- 22号   23号    24号    25号    26号    27号    28号    29号   30号  CDay22  CDay23 CDay24  CDay25  CDay26  CDay27  CDay28  CDay29 CDay30  G G G G G* G G G G 表4: 员工打卡数据表(经行转列处理)CardRecord 工号     打卡日期   打卡1  打卡2  打卡3 打卡4   打卡5   打卡6   打卡7   打卡8 Ecode    CardDate   Card1  Card2  Card3 Card4   Card5   Card6   Card7   Card8 ------------------------------------------------------------------------------ G0520 2007-06-18  08:13  18:29  NULL NULL NULL NULL NULL NULL G0520 2007-06-19  08:05  18:03  NULL NULL NULL NULL NULL NULL G0520 2007-06-21  20:20  06:21  NULL NULL NULL NULL NULL NULL G0520 2007-06-22  17:30  07:53  NULL NULL NULL NULL NULL NULL G0520 2007-06-23  19:56  20:00  06:37  NULL NULL NULL NULL NULL 问题是根据员工的原始打卡数据CardData和当天排班ArrayClass和班次类型表ClassType, 将员工的原始打卡数据处理成如上(表4:CardRecord)所示的数据(行转列),处理过程应该根 据具体情况来处理. 如有员工(G0520)当天班次的为A班,员工有二次打卡分别为08:13(上班)和06:21(下班),而该 班的时间安排为08:30-17:30,则处理后的数据应该为: 工号     打卡日期   打卡1  打卡2  打卡3 打卡4   打卡5   打卡6   打卡7   打卡8 Ecode    CardDate   Card1  Card2  Card3 Card4   Card5   Card6   Card7   Card8 ------------------------------------------------------------------------------ G0520 2007-06-18  08:13  18:29  NULL NULL NULL NULL NULL NULL 如有员工(G0520)当天班次的为G班,员工有二次打卡分别为20:20(上班)和18:29(下班),而该 班的时间安排为20:30-05:00,则处理后的数据应该为: 工号     打卡日期   打卡1  打卡2  打卡3 打卡4   打卡5   打卡6   打卡7   打卡8 Ecode    CardDate   Card1  Card2  Card3 Card4   Card5   Card6   Card7   Card8 ------------------------------------------------------------------------------ G0520 2007-06-18  20:20  06:21  NULL NULL NULL NULL NULL NULL 另还不具体员工当天会打多少次卡. 如有员工(G0520)当天班次的为G班,员工有三次打卡分别为19:56(上班),20:00和18:29(下班 ),而该班的时间安排为20:30-05:00,则处理后的数据应该为: 工号     打卡日期   打卡1  打卡2  打卡3 打卡4   打卡5   打卡6   打卡7   打卡8 Ecode    CardDate   Card1  Card2  Card3 Card4   Card5   Card6   Card7   Card8 ------------------------------------------------------------------------------ G0520 2007-06-18  19:56  20:00  06:37 NULL NULL NULL NULL NULL

你说的这个考勤管理我做过了,处理考勤数据是一个非常复杂的存储过程。需要时间去考虑和测试。

像这样的,建议LZ先把测试数据脚本写出来不好

是的,我也觉得乱七八糟的,而且《表3: 员工排班表(ArrayClass)》采用横排值得商榷,这样就一定得用动态SQL了。

这个~太难了。一时三刻搞不定吧,祝福,学习

08:13(上班)和06:21(下班),有点迷糊了,连上22个小时的班吗?

排班争取一周就可以了..1月太长也不好显示,除非你做报表.

跨夜的时间最好做一个标志 如:上午8:00~P06:31 或者是对应卡号进行统计 在不同的排班班制里进行对应处理 大多数考勤在跨时间段的处理有点问题

數據結構設計的有問題,這樣設計的結構我估計你還會碰到比較麻煩的問題.結構+算法 = 程序,沒有好的結構當然算法就比較的複雜甚至還不一定能找到算法

这个应该算是一个小型的数据库设计吧,感觉挺复杂的

最好把数据注释加上,另外把脚本粘上来,可以节省想帮助你的人的时间

我也是自己寫的考勤處理,已經運行了一年了,每天約三萬次卡 呵呵,是比較繁瑣點,當然也需要點技術和經驗

光吧问题看清楚就够挑战的了

不错,有前途!

这个不是一下子能解决的事情了,LZ和我做的一个人力资源系统数据表非常相近...

真多...

什么呀

我也想了解,谢谢LZ.

上一篇:用SQL整体导入数据时的进度如何显示 50feixianxxx]
下一篇:sql server2005存储过程是否还可以象2000一样解密? 20feixianxxx]

相关文章

相关评论