聲明這是我有:SQL嵌套如果內部計數
SELECT Count(*) AS cnt
FROM tblOccurrence AS x
WHERE (((x.OccurrenceDate) Between DateAdd('m',-6,Date()) And Date())
AND ((Exists (SELECT *
FROM tblOccurrence AS y
WHERE y.TechID = x.TechID AND DATEADD ('d', -1, x.[OccurrenceDate]) = y.[OccurrenceDate]))=False)
AND ((x.TechID)= " & Me.tbxTechID.Text & "))
GROUP BY x.TechID;
這是用來計算員工缺勤「事件」,如果員工無故1天是1次出現。如果他們連續5天無效,那仍然是一次。
這是完美的工作,直到有人指出,如果員工有星期五和星期一的M-F班次,那只有一次發生。爲了讓事情變得更加艱難,我們的員工變化很大(MF,星期二,星期六,星期一,星期六,星期六,星期六,星期六等)......所以我建立了一張桌子,可以容納所有不同的班次其中8人),有9列:
ID - ShiftName - Sunday - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday
的ShiftName是簡短的描述(週一至週五,週二,五,日,星期四,等),然後是/否字段天的文本字段一週中的。然後,複選標記是預定日期。
所以我很想大家的輸入2周的事情,
- 這是一個「好」的方式來捕捉我需要什麼拍攝?
- 該SQL語句如何改變以使得發生次數正確,同時考慮到包裝週末的無故缺勤但計爲1次發生?
因此,看起來人們實際上只會發生第二次事件的唯一時間是他們是否真的回到工作崗位並有另一次缺席。你記錄他們在工作的日子嗎? – UnhandledExcepSean 2012-08-17 13:14:12
正確。如果某人在星期一無心再回到星期二工作,並在星期三再次出現,那是兩次。 – Zamael 2012-08-17 13:19:12
而員工的轉變現在用上面描述的表格(tblShifts)捕獲。 9列,是/否每週的每一天,他們的預定日期都有「是」值,他們的預定休息日是「不」值 – Zamael 2012-08-17 13:20:52