莫名其妙,这种问题也要麻烦三千兄。
给你思路:
查询开始日期+查询天数 = 结束天
查询开始日期 = 开始天
where为某字段>开始天 ADN 某字段<结束天 AND 标记字段 !=工作日 加上其它
如果要求和,sum or count
如果要顺序,则sort
难道不可以办到吗?
给你思路:
查询开始日期+查询天数 = 结束天
查询开始日期 = 开始天
where为某字段>开始天 ADN 某字段<结束天 AND 标记字段 !=工作日 加上其它
如果要求和,sum or count
如果要顺序,则sort
难道不可以办到吗?
解决方案 »
- ORACLE数据库
- 请教关于Oracle 10g的RAC归档日志存放混乱的问题。
- 在安装Oracle的时候,管理员什么的密码都没有设置,怎么办?
- 急救,oracle双机复制失败,延迟事务堆积很多,是否有办法快速清除延迟事务
- pl/sql 字符型的日期比较
- 高手们请看看这个问题!如何用jdbc将jpg图像写入数据库而不用oracle的包?
- 关于PLSQL脚本的问题
- 在oracle数据库中如何存放指数、幂数、开根号等数据呢
- 装上ORA816 服务端后后,PB连接数据库就死了,为什么?
- 求解决方案:oracle in 内部有几千条记录,如何提高查询效率
- 有关oracle中的null值问题
- 如何给已经被锁的表解锁?
问题不是那么简单:
查询开始日期+查询天数 = 结束天 不正确
你不能确定“结束的日期“ ,他的条件是查工作日,如果遇到休息日,结束日期要向后退,如:页面熟如:2002/10/24 和 4 (即从2002/10/24日向前查连续4天未出勤的人),
从数据库中查得:
21(工作日)、22(工作日)、23(休息日)、24(工作日)
那么它的结束日就是20日
而不是21日。遇到休息日要向前推!
如果20日还是休息日,那结束日就是19日
所以不能确定查询结束的日子!
请高手帮忙
建议用一个表来存放休息日或者其他的EXCEPTIONS:
create table Calendar_Exceptions
( Date_From Date, --休息日起始日期
Date_To Date, --休息日终止日期
Apply_For Varchar2(10), --休息日有效对象(可以是对全体有效,也可以只对某些用户/部门有效,你自己决定怎么定义结构)
Exception_Type Varchar2(10),
Description Varchar2(255)
);思路是定义游标,然后循环检查是否连续日期,是否未出勤,最后返回最大的日期
但是我不知道你的工作纪录表是如何定义的,所以无法给出具体的代码.如果有兴趣,可以继续讨论.
三千兄:
你的意识我明白了!但客户不让那么做!
我们现在想的办法也是用存储过程!
思路是:
把满足其它缺勤条件的“休息日”和“工作日”都查出来(rs),然后循环比较!
(1)检查包含“休息日”和“工作日”的rs的日期是否是连续的!如果连续说明“工作日“缺勤连续,符合条件,反之不符合!
(2)检查在“工作日”缺勤次数是否大于等于页面输入的天数即可
以上两个条件都满足的就是要查询的!
请问三千兄有没有更好的方法!多谢帮忙!!!