2012-11-28 58 views
1

我有一個查詢,我試圖找到有多少到達的特定位置和組按時間框架。恩。 0001-0559,0600-1159,1200-1759和1800-2359。我的查詢SQL是這樣的...Access SQL SumIf Equivalent

SELECT tbl_2_trip_details_2012.arrival_id, 
     Hour([tbl_2_trip_details_2012] ! [arrive_ts]) AS [B-Hour], 
     Weekday([tbl_2_trip_details_2012] ! [arrive_ts]) AS [A-WeekDay#], 
     Month(tbl_2_trip_details_2012 ! arrive_ts)  AS [Month], 
     Count(tbl_2_trip_details_2012.trip_id)   AS CountOfTrip_ID 

FROM tbl_2_trip_details_2012 

WHERE (((tbl_2_trip_details_2012.arrival_id) = 84252114)) 

GROUP BY tbl_2_trip_details_2012.arrival_id, 
      Hour([tbl_2_trip_details_2012] ! [arrive_ts]), 
      Weekday([tbl_2_trip_details_2012] ! [arrive_ts]), 
      Month(tbl_2_trip_details_2012 ! arrive_ts) 

HAVING (((Month([tbl_2_trip_details_2012] ! [arrive_ts])) = 7)) 

ORDER BY Weekday([tbl_2_trip_details_2012] ! [arrive_ts]), 
      Hour(tbl_2_trip_details_2012 ! arrive_ts); 

以這種格式的查詢會提取所有看起來像我需要的信息。按星期幾計算時間範圍時,我遇到了問題。我一直試圖在Criteria字段中使用「>或<」執行CountOfTrip_ID的總和。我已經用盡了堆棧中的文件和Access幫助功能。有什麼想法嗎?

回答

3

若要將您的小時分組到6個小時範圍內,只需將小時的整數乘以6再將結果乘以6即可。因此,它應該是這樣的:

int(Hour([tbl_2_trip_details_2012] ! [arrive_ts])/6) * 6 AS [Hour-range] 

然後,您將得到0,6,12,18 &(每組的開始)的值,你可以在羣組。

+0

湯姆,當我回到我的辦公室時,我會在早上給你一個鏡頭。謝謝! –

+0

Tom,我已經將該代碼作爲表達式插入,並且按照您的說法工作。謝謝! –

+0

不客氣。很高興它爲你工作。 –