【发布时间】:2020-02-29 06:54:10
【问题描述】:
你们中的许多人可能都知道三明治休假。但是如何在数据库级别实现对我来说有点困难。我有一个场景,如果员工休假 2 次,即在他们的周休假之前和之后,那么所有 3 天都应该标记为休假。 以下是我分享的基本要求。
HERE IS REQUIREMENT OF SANDWICH LEAVE
这是一些示例数据。我最终可能会想到用相应的期望结果来补充这一点。
CREATE TABLE IF NOT EXISTS `atnsystem` (
`Emp_id` int unsigned NULL,
`attendance_date` date NULL,
`in_datetime` datetime NULL,
`out_datetime` datetime NULL,
`remark` varchar(100) NULL
) DEFAULT CHARSET=utf8;
INSERT INTO `atnsystem` (`Emp_id`, `attendance_date`, `remark`) VALUES
('66', '2020-02-17', 'LEAVE'),
('66', '2020-02-16', 'WEEK-OFF'),
('66', '2020-02-15', 'LEAVE');
这是 SQL_FIDDLE 链接table created in fiddler
我想如果 remark 像 LEAVE 、 WEEK-OFF 和 LEAVE 一样,那么 WEEK-OFF 也应该转换为 LEAVE。
插入什么并不重要,但是在使用 SELECT 查询时,如果它发现 YESTERDAY 为 LEAVE,TODAY 为 WEEK-OFF,然后在第二天再次为 LEAVE,那么 WEEK-OFF 日也应该被视为 LEAVE。我希望我能清楚地说明我的问题,并且非常感谢任何帮助。
【问题讨论】:
-
花时间修改公司的休假政策会更好。
-
@Strawberry,你的建议似乎不错,但我需要一个三明治休假的解决方案。另外,我正在尽我所能找到解决方案。如果您有解决方案,请分享。
-
@Strawberry,我知道我什至分享了我在最后一行产生的虚拟数据。我认为这足以理解我想要什么。从我正在挣扎的事情来看。我还分享了 6、7、8、10 的 Id 详细信息,大家比较容易理解。
-
@Strawberry,请建议您还需要做什么才能理解我的查询。我会相应地详细说明。
-
很明显,你还没看懂
标签: mysql database-administration