考勤SQL语句请求支援

cumtouter 2011-01-08 01:57:39
说明:将学生分组(跨班分,或在一个班里划分),某学生一天可能不止一门课,排课制定时间范围,同时制定教室
表结构如下:
1.考勤规则表(分为单位)
迟到时间范围(即多少分算吃到),早退时间范围,刷卡前后有效范围
2.排课表
ID,学生组ID,日期,考勤时间,教室
格式如:1,1,20110101,8:00-12:00 A101
2,1,20110101,13:00-17:00 A102
3.刷卡记录表
ID,学号,日期,刷卡时间,标记
格式如:1,2011,20110101,8:00,1(上课)
2,2011,20110101,11:30,0(下课)
3,2011,20110101,13:00,1(上课)
4,2011,20110101,16:30,0(下课)
现在想实现的效果是:
1.查看学生的刷卡明细,刷卡时间逗号隔开
格式如:学号 日期 刷卡时间
即:2011 20110101 8:00,11:30,13:00,16:30(刷卡时间逗号隔开)
2.日报表(组里未刷卡的学生的信息也要体现出来)
格式如:学号 日期 上课1时间 结果(迟到,早退或未刷卡) 下课1时间 结果 上课2时间 结果 下课2 结果。。。。。。缺勤次数(一天该刷卡没刷卡的次数/2)
3.月报表
格式如:学号,迟到次数,早退次数,缺勤次数
...全文
121 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
smallapple88 2011-01-19
  • 打赏
  • 举报
回复
考勤最主要的是排班,有些东西用编程软件来完成.
cumtouter 2011-01-14
  • 打赏
  • 举报
回复
呵呵,自己再摸索了,谢谢给位支持
  • 打赏
  • 举报
回复
dawugui 2011-01-13
  • 打赏
  • 举报
回复
考勤的东西,用SQL或程序几乎无法完成,最终需要人工干预,帮顶了.
fa_ge 2011-01-13
  • 打赏
  • 举报
回复
这个很复杂,绝不是一条SQL能解决的。
gw6328 2011-01-13
  • 打赏
  • 举报
回复

-- 1.
USE DB
GO
CREATE TABLE [刷卡记录]
(
[ID] INT IDENTITY(1,1) PRIMARY KEY
,[学号] NVARCHAR(100)
,[日期] DATE
,[刷卡时间] VARCHAR(100)
,[标记] BIT
)
GO

INSERT INTO [刷卡记录] SELECT '2011','2011-01-01','8:00',0
UNION ALL SELECT '2011','2011-01-01','11:00',1
UNION ALL SELECT '2012','2011-01-01','8:00',0
UNION ALL SELECT '2012','2011-01-01','11:00',1
UNION ALLSELECT '2012','2011-01-01','11:10',0
UNION ALL SELECT '2012','2011-01-01','11:50',1

GO

SELECT * FROM [刷卡记录]

select 学号,日期,(select [刷卡时间]+',' from [刷卡记录] x where x.学号=y.学号 for xml path('')) from [刷卡记录] y group by 学号,日期

华夏小卒 2011-01-13
  • 打赏
  • 举报
回复
这个很麻烦,关注!
叶子 2011-01-13
  • 打赏
  • 举报
回复

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧