ms-access - 如何从多行中查找帖子的分手日期
问题描述
我有一个大约 1000 个帖子的结构如下表
SRL Post_Name Name Start_Date End_Date Reason
441a Lecturer Dr (Ms)Prem Kali Sharma 01-11-1974 02-03-1989 Retired
441b Lecturer Post Vacant 03-03-1989 31-07-1989 Vacant
441c Lecturer Dr Aditya Prachandiya 01-08-1989 30-07-1994 Worked1
441d Lecturer Dr Aditya Prachandiya 01-08-1994 31-07-1999 Worked2
441e Lecturer Dr Aditya Prachandiya 01-08-1999 25-08-2000 Worked1
441f Lecturer Dr Aditya Prachandiya 26-08-2000 05-03-2010 Leave
441g Lecturer Dr Aditya Prachandiya 06-03-2010 30-06-2016 Retired
441h Lecturer Post Vacant 01-07-2016 06-11-2017 Vacant
441i Lecturer Dr (Ms) Ranjana Pandey 07-11-2017 06-11-2018 Temporary
442a Reader Dr HC Gupta 01-07-1958 30-06-1990 Retired
442b Reader Post Vacant 01-07-1990 25-10-1990 Vacant
442c Reader Dr Agam Prasad Tyagi 26-10-1990 25-10-1995 Worked5
442d Reader Dr Agam Prasad Tyagi 26-10-1995 25-10-2000 Worked1
442e Reader Dr Agam Prasad Tyagi 26-10-2000 05-12-2003 Worked2
442f Reader Dr Agam Prasad Tyagi 06-12-2003 30-06-2029 Working
基本上我想做的是有一个访问查询来查找从“441a 到 441i”和“442a 到 442f”是否有任何日期间隔来检查日期的输入错误。
解决方案
需要提取数字前缀作为组标识符。我用表达式在表中创建了一个计算字段:Left([SRL],3)
。然后是一个嵌套查询来提取下一条记录的 Start_Date:
SELECT *, End_Date + 1 AS NextStart, (SELECT TOP 1 Dupe.Start_Date FROM Table1 AS Dupe WHERE Dupe.SRL_Group = Table1.SRL_Group AND Dupe.SRL > Table1.SRL) AS NextRecStart FROM Table1;
如果 NextStart 和 NextRecStart 不相等,则存在日期间隔。
推荐阅读
- php - 在同一查询中使用 with() 和 join() 时出现问题 - Laravel
- python - 从具有 openpyxl 的相同电子表格中读取的数据在多个模块之间的比较不相等
- docker - 如何与 Conatinerd 运行时共享我的 docker 图像?
- javascript - 刷新页面时如何不显示所有框
- python-3.x - Python 日期和时间
- javascript - ES6 箭头函数和 jQuery 小部件工厂
- javascript - Javascript文件突然停止工作,没有任何变化
- c# - C# 实体框架:使用 Where 和 Join 进行批量更新
- azure-resource-manager - 如何使用用户管理的身份部署 ARM 模板并分配订阅级别角色?
- sql - dbt 宏在 sql 调用中迭代列表中的项目?