考勤表查询

cnxiaoma 2004-09-08 11:02:13
有一个表存放员工的出勤记录 要查询出所有连续上班超过7天的员工 一句SQL 语句怎么写啊

表如下例
姓名 日期 工时
A 04/01/01 5
A 04/01/02 8
A 04/01/03 6
A 04/01/04 8
A 04/01/05 8
A 04/01/06 0
A 04/01/07 8
................
B 04/01/01 8
...............
B 04/01/31 8
.................
...全文
199 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnxiaoma 2004-09-10
  • 打赏
  • 举报
回复
没有看清楚题目意思的同学请不要回贴
lxd99423 2004-09-10
  • 打赏
  • 举报
回复
一条语句!? Impossible
lxd99423 2004-09-10
  • 打赏
  • 举报
回复
没看清楚代码的同学请不要乱讲

select distinct 姓名 from #t where flag=6
lxd99423 2004-09-09
  • 打赏
  • 举报
回复
不用临时表,有点难!
lxd99423 2004-09-09
  • 打赏
  • 举报
回复
create table 表(
姓名 char(2),
日期 datetime,
工时 int
)
insert 表 select 'A','04/01/01',5
union
select 'A','04/01/02',8
union
select 'A','04/01/03',6
union
select 'A','04/01/04',8
union
select 'A','04/01/05',8
union
select 'A','04/01/06',0
union
select 'A','04/01/07',8
union
select 'B','04/01/01',8
union
select 'B','04/01/03',8

declare @flag int
set @flag=0

--增加flag字段,记录连续上班的天数
select *,@flag as flag into #t from 表 order by 姓名,日期,工时

declare @date datetime,@m int
set @m=0
set @date=dateadd(dd,1,getdate())

--写入连续上班天数
update #t set
@m=flag=case when 日期=dateadd(dd,1,@date) then @m+1 else 0 end,
@date=日期

--查看临时表内容
select * from #t

--查出连续工作大于或等于7天的员工
--select distinct 姓名 from #t where flag=6

drop table 表
drop table #t

--执行结果
/*
姓名 日期 工时 flag
---- ------------------------------------------------------ ----------- -----------
A 2004-01-01 00:00:00.000 5 0
A 2004-01-02 00:00:00.000 8 1
A 2004-01-03 00:00:00.000 6 2
A 2004-01-04 00:00:00.000 8 3
A 2004-01-05 00:00:00.000 8 4
A 2004-01-06 00:00:00.000 0 5
A 2004-01-07 00:00:00.000 8 6
B 2004-01-01 00:00:00.000 8 0
B 2004-01-03 00:00:00.000 8 0

(所影响的行数为 9 行)

*/
cnxiaoma 2004-09-09
  • 打赏
  • 举报
回复
那个帖子太乱了,有没有一个结论?要求是不用临时表,只用一句SQL语句。
yesterday2000 2004-09-08
  • 打赏
  • 举报
回复
参考一下
http://community.csdn.net/Expert/topic/2705/2705464.xml?temp=.4192163
【资源说明】 该项目是个人毕设项目源码,评审分达到95分,都经过严格调试,确保可以运行!放心下载使用。 该项目资源主要针对计算机、自动化等相关专业的学生或从业者下载使用,也可作为期末课程设计、课程大作业、毕业设计等。 具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现类似其他功能。 程序技术: Springboot + Uniapp + Mysql 本考勤系统项目前端采用基于跨平台的Uniapp设计,开发工具采用Hbuilder,可以实现一次开发多端发布。这个考勤系统不同于传统的考勤系统,可以实现对接讯飞开放平台,其中的声纹识别api文档地址:https://www.xfyun.cn/doc/voiceservice/isv/API.html#接口调用流程,实现语音声纹的录入注册和查询对比。手机端接口都在web.controller.api.SysApiController里面,录音文件上传接口是在cn.ttitcn.web.controller.common.CommonController里面的common/uploadVoice,他的返回值是该录音文件在服务器硬盘中存储的绝对路径。项目实现的功能如下: 一 用户注册 1 表单输入用户名密码等基础信息,验证数据后,点击下一步 2 进入录音界面 3 A 录音完成--上传录音--返回录音文件存在服务器的路径 B 再根据A的路径到讯飞注册,返回一个特征码featureId ---registerVoice 4 根据第3步得到的特征码和第1步表单的内容调注册接口 ---register 二 声纹登录 ---loginVoice 1 录音完成--上传录音--返回录音文件存在服务器的路径 2 再根据A的路径到讯飞查询1:N,返回一组根据比对分数排序的特征码列表,取第一个特征码 3 再根据该特征码查询用户信息,查询到了就返回,登录成功 三 用户密码登录 ---loginNocode 1 根据用户名查询出用户,再和密码进行匹配,相同就返回登录成功 四 声纹考勤 ---attVoice 1 录音完成--上传录音--返回录音文件存在服务器的路径 2 再根据A的路径到讯飞查询1:N,返回一组根据比对分数排序的特征码列表,取第一个特征码 3 再根据该特征码查询用户信息,然后到考勤表查询记录,没有就插入,有就更新考勤时间 五 手动考勤 ---att 1 进入手动考勤页面的时候会先加载今天的考勤数据,没有会先生成一条,然后返回该条数据,有的话直接返回 ---getAttToday 2 根据考勤记录的ID直接更新时间 管理员登录地址: http://localhost:8887/moral/login 管理员账号密码: admin/admin

27,579

社区成员

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

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