关于select语句问题

dingwei 2002-06-10 02:18:15
问题如下:
日常考勤表:
姓名 上午上班状态 上午下班状态 下午上班状态 下午下班状态
__________________________________________________________
001
002
日常请假表:
姓名 开始日期 结束日期 事由
001 2002-6-9 2002-6-10

怎样才能使日常考勤表中的上午上班状态、上午下班状态、下午上班状态、下午下班状态
标记为请假?
update 日常考勤表
set 上午上班状态=''
set 上午下班状态=''
set 下午上班状态=''
set 下午下班状态=''
where (请问这个条件怎该怎样表达???)
谢谢!!!

...全文
46 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzhughie 2002-06-10
  • 打赏
  • 举报
回复
你的日常请假表中请假时间包括结束日期吗?
如果包括这样写
update 日常考勤表
set 上午上班状态='请假'
set 上午下班状态='请假'
set 下午上班状态='请假'
set 下午下班状态='请假'
from 日常考勤表 A INNER JOIN 日常请假表 B ON A.姓名=B.姓名
where DATEDEFF(DY,a.日期字段 ,B.开始日期)<=0
and DATEDEFF(DY,a.日期字段 ,B.结束日期)>=0

如果不包括这样写
update 日常考勤表
set 上午上班状态='请假'
set 上午下班状态='请假'
set 下午上班状态='请假'
set 下午下班状态='请假'
from 日常考勤表 A INNER JOIN 日常请假表 B ON A.姓名=B.姓名
where DATEDEFF(DY,a.日期字段 ,B.开始日期)<=0
and DATEDEFF(DY,a.日期字段 ,B.结束日期)=0
gzhughie 2002-06-10
  • 打赏
  • 举报
回复
你的日常请假表中请假时间包括结束日期吗?
如果包括这样写
update a
set 上午上班状态='请假'
set 上午下班状态='请假'
set 下午上班状态='请假'
set 下午下班状态='请假'
from 日常考勤表 A INNER JOIN 日常请假表 B ON A.姓名=B.姓名
where DATEDEFF(DY,a.日期字段 ,B.开始日期)<=0
and DATEDEFF(DY,a.日期字段 ,B.结束日期)>=0

如果不包括这样写
update 日常考勤表
set 上午上班状态='请假'
set 上午下班状态='请假'
set 下午上班状态='请假'
set 下午下班状态='请假'
from 日常考勤表 A INNER JOIN 日常请假表 B ON A.姓名=B.姓名
where DATEDEFF(DY,a.日期字段 ,B.开始日期)<=0
and DATEDEFF(DY,a.日期字段 ,B.结束日期)=0
dingwei 2002-06-10
  • 打赏
  • 举报
回复
不好意思,日常考勤表忘了写入时间了!
yinzhen 2002-06-10
  • 打赏
  • 举报
回复
日常请假表:沒有時間啊?
gzhughie 2002-06-10
  • 打赏
  • 举报
回复
你的日常考勤表怎么没有记录是那一天的字段阿
难道所有的只记入当天的事情吗?
wylyf 2002-06-10
  • 打赏
  • 举报
回复
update a
set 上午上班状态=''
set 上午下班状态=''
set 下午上班状态=''
set 下午下班状态=''
from 日常考勤表 a
where exists (select 姓名 from 日常请假表 where a.日期字段 between 开始日期 and 结束日期)
wylyf 2002-06-10
  • 打赏
  • 举报
回复
update a
set 上午上班状态=''
set 上午下班状态=''
set 下午上班状态=''
set 下午下班状态=''
from 日常考勤表 a
where exists (select 姓名 from 日常请假表 where a.日期字段 between 开始日期 and 结束日期)
wylyf 2002-06-10
  • 打赏
  • 举报
回复
update a
set 上午上班状态=''
set 上午下班状态=''
set 下午上班状态=''
set 下午下班状态=''
from 日常考勤表 a
where exists (select 姓名 from 日常请假表 where a.日期字段 between 开始日期 and 结束日期)
j9988 2002-06-10
  • 打赏
  • 举报
回复
我觉奇怪,日常考勤表怎么没日期时间字段!
 如有:
 where 姓名 in(Select 姓名 from 日常请假表 where 开始日期<考勤日期 And 结束日期>=考勤日期)
 如没(如一天一张考勤表临时表)就简单:
 where 姓名 in(Select 姓名 from 日常请假表)
wolfAone 2002-06-10
  • 打赏
  • 举报
回复
日常考勤表保存的当前日期的状态吗?
如果是,可以这么写:


where 姓名 in(Select 姓名 from 日常请假表 where 开始日期<今天 And 结束日期>=今天)

今天可以作为一个参数传递

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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