Sql 如何按连续日期范围对数据进行分组
我有一个表格,在其中输入每位员工的出勤情况,包括年假代码:LAn或事假代码:LCa +----+------+---+ |ID |日期|收件人| +----+------+---+ |9999年7月1日19日生命周期评价| |9999年7月2日19日生命周期评价| |9999年3月19日生命周期评价| |10000年7月15日至19日| |10000年7月16日至19日| |10000年7月17日至19日| |10000年7月18日至19日| |10000年7月19日至19日| |9999年7月22日19日生命周期评价| |9999年7月23日19日生命周期评价| |9999年7月24日19日生命周期评价| +----+------+---+ 我在MS Access 2016工作 这与此问题非常相似:,但我需要MS Access中的解决方案。有人能帮我吗 我希望查询根据日期对数据进行分区,以便输出如下所示: +----+------+------+---+---+ |ID | DateFrom | date to | Days | Att| +----+------+------+---+---+ |9999 | 01-Jul-19 | 03-Jul-19 | 3 |生命周期评价| |10000 | 19年7月15日| 19年7月19日| 5 |兰| |9999年| 19年7月22日| 19年7月24日| 3年|生命周期评价| +----+------+------+---+---+Sql 如何按连续日期范围对数据进行分组,sql,ms-access,Sql,Ms Access,我有一个表格,在其中输入每位员工的出勤情况,包括年假代码:LAn或事假代码:LCa +----+------+---+ |ID |日期|收件人| +----+------+---+ |9999年7月1日19日生命周期评价| |9999年7月2日19日生命周期评价| |9999年3月19日生命周期评价| |10000年7月15日至19日| |10000年7月16日至19日| |10000年7月17日至19日| |10000年7月18日至19日| |10000年7月19日至19日| |9999年7月
在MS Access中,可以使用相关子查询生成序列号。然后从日期中减去序列号以识别组:
select id, min(date), max(date), att
from (select t.*,
(select count(*)
from t as t2
where t2.id = t.id and
t2.date <= t.date
) as seqnum
from t
) as t
group by id, att, dateadd("d", - seqnum, date)
按日期添加分组,-seqnum,日期1+。