我是一名Access noob,正在使用一个跟踪员工受伤和错过时间的数据库。我有一个查询从两个表中提取数据:一个是员工受伤而另一个是错过时间。大多数伤病没有任何相关的错过时间,并且有两种类型的错过时间。目前,查询为每种类型的错过时间返回单独的行。我想修改此查询,以便每个员工只有一行,有两个单独的列,用于不同类型的错过时间。我的专栏标题将来自:
事件发生日期,员工姓名,Leave_Type,天数
对此:
事件发生日期,员工姓名,休假日,轻工日
查询如下。两种假期是" Off"和" TTA"。有关如何做到这一点的任何建议吗?
SELECT
Injuries.[Date of Incident],
Injuries.[Employee's name],
Leave.Leave_Type,
Sum(IIf(Leave.Last Is Null,DateDiff("d",Leave.First,Date())+1, DateDiff("d",Leave.First,Leave.Last)+1)) AS Days
FROM
Injuries LEFT JOIN Leave ON Injuries.ID = Leave.ID
WHERE
Injuries.[OSHA Recordable?]<0
and Injuries.[Date of Incident] between [Forms]![OSHA Recordable Claims Form]![From] and [Forms]![OSHA Recordable Claims Form]![To]
GROUP BY
Injuries.[Date of Incident],
Injuries.[Employee's name],
Leave.Leave_Type
ORDER BY
Injuries.[Date of Incident];
答案 0 :(得分:0)
有两种选择:
您可以使用Leave-Type作为列标题
进行交叉表查询或者您可以在两列中的每一列中添加公式
OFF_leave:Iif (leave_type="Off",<calc the amount here>,0)
TTA_Leave:Iif (leave_type="TTA",<calc the amount here>,0)
每列将总结适当的假期类型。