【发布时间】:2016-03-18 18:04:52
【问题描述】:
我有一个包含时间段的第一个和最后一个日期的表格,我需要计算这两个日期之间的天数“sickness”。我无法让计数正常工作。我设置的计数是计算每天生病的次数,而不考虑下面的时间段,这就是我的意思的一个例子。
EAN FirstDate LastDate DaysLost
24659 02/03/2016 04/03/2016 5
24659 07/03/2016 08/03/2016 5
14659 23/02/2016 26/02/2016 14
14659 29/02/2016 04/03/2016 14
14659 07/03/2016 11/03/2016 14
我想看到的是:
EAN FirstDate LastDate DaysLost
24659 02/03/2016 04/03/2016 3
24659 07/03/2016 08/03/2016 2
14659 23/02/2016 26/02/2016 4
14659 29/02/2016 04/03/2016 5
14659 07/03/2016 11/03/2016 5
从第一个日期到最后一个日期有两个类别,它们是“rest day”和“sickness”。我只对第一个日期和最后一个日期之间因“sickness”而损失的天数感兴趣。
第一个和最后一个日期取自tmp_table,该tmp_table 从包含每个人所有日期的表中提取数据。然后计算休息日和病假的连续天数,得到一个缺勤期。
有没有办法让我在两个日期之间看到“sickness”?
当前查询:
SELECT tbl_PaysysData.EAN, tmp_Occurences.FirstDate, tmp_Occurences.LastDate, Count(dim_AbsenceTypes.AbsenceType) AS DaysLost INTO tmp_OccurencesandDaysLost
FROM (tmp_Occurences INNER JOIN tbl_PaysysData ON tmp_Occurences.EAN = tbl_PaysysData.EAN) INNER JOIN dim_AbsenceTypes ON tbl_PaysysData.AbsenceType = dim_AbsenceTypes.AbsenceType
WHERE (((dim_AbsenceTypes.AbsenceType)="sickness"))
GROUP BY tbl_PaysysData.EAN, tmp_Occurences.FirstDate, tmp_Occurences.LastDate;
【问题讨论】:
-
向我们展示您当前的查询!
-
这可能会有所帮助!见上文
-
您只需要这些日期之间的差异,对吧?
-
不,不完全是,第一个日期和最后一个日期有两个类别; “休息日”和“生病”。我想知道这两个日期之间有多少天是“病”。