我有一个MS Access数据库表datetime列。当我选择特定月份(比如7月)时,我必须在那个月获得日期数据。
输出应采用与附加图像相同的格式。
在特定日期进入的每位员工当天都应显示“P”。如果员工在某一天没有进来(如周六或周日),那么我必须在那一天显示“WO”。
当员工没有进入(如周六或周日)时,该日期的日志表中没有条目。
如何编写Access查询以获取此输出?我正在使用MS Access 2003数据库。
编辑:我们必须使用TRANSFORM和PIVOT,但问题是当员工不在时(周六,周日),我们仍然需要在输出中显示数据。
答案 0 :(得分:1)
设置一个从第一个表中读取EmpID和CheckTime的查询,并添加一个附加列:
DateWise: IIf(Weekday([CheckTime])=1 Or Weekday([CheckTime])=7,"WO","P")
您需要一个额外的表格,其中包含一年中的每个日期(我们称之为YearDates)。将该表连接到您的查询,如下所示:
Select YD.YearDates, Q2.* from YearDates YD LEFT JOIN Query2 Q2 ON YD.YearDates = DATEVALUE(Q2.CheckTime)
DATEVALUE将在CheckTime中删除日期的时间,以便它们将日期与日期相匹配。