查询在所选月份获取Daywise

时间:2013-07-26 05:59:33

标签: sql ms-access

我有一个MS Access数据库表datetime列。当我选择特定月份(比如7月)时,我必须在那个月获得日期数据。

输出应采用与附加图像相同的格式。

在特定日期进入的每位员工当天都应显示“P”。如果员工在某一天没有进来(如周六或周日),那么我必须在那一天显示“WO”。

当员工没有进入(如周六或周日)时,该日期的日志表中没有条目。

如何编写Access查询以获取此输出?我正在使用MS Access 2003数据库。

编辑:我们必须使用TRANSFORM和PIVOT,但问题是当员工不在时(周六,周日),我们仍然需要在输出中显示数据。


enter image description here enter image description here

1 个答案:

答案 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中删除日期的时间,以便它们将日期与日期相匹配。