2

我有一个查询,我正在尝试查找某个位置的到达人数并按时间范围分组。前任。0001-0559、0600-1159、1200-1759 和 1800-2359。我的查询 SQL 是这样的...

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 的总和。我已经用尽了堆栈上的文件和访问帮助功能。有什么想法吗?

4

1 回答 1

3

要将您的小时数分组为 6 小时范围,只需将小时数的整数乘以 6,然后再将结果乘以 6。所以它看起来像这样:

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

然后,您将获得可以分组的值 0、6、12 和 18(每个组的开始)。

于 2012-11-28T22:12:59.377 回答