2013-05-07 77 views
0

我是一個訪問noob,我正在與一個數據庫,跟蹤員工傷害和錯過時間。我有一個查詢從兩個表中提取數據:一個是員工受傷,另一個是錯過時間。大多數傷病沒有任何相關的錯過時間,並且有兩種錯過時間。目前,查詢爲每種類型的錯過時間返回一個單獨的行。我想修改此查詢,以便每個員工只有一行,併爲兩種不同類型的錯過時間分開列。我的列標題會去從這樣的:MS訪問查詢子選擇或與左連接聯盟

事件,僱員的姓名,Leave_Type,日期天

要這樣:事件,僱員的姓名,休息日,天對輕型

日期

查詢如下。這兩種類型的休假是「關」和「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

兩個選項浮現在腦海中:

的列標題

或者你可以把公式中的每個兩列

的你可以做免洗型交叉表查詢
OFF_leave:Iif (leave_type="Off",<calc the amount here>,0) 

TTA_Leave:Iif (leave_type="TTA",<calc the amount here>,0) 

每列將總結適當的休假類型。

+0

在我記住聲明Between參數後,交叉表查詢正常工作。謝謝! – user2359212 2013-05-07 18:00:22