如何获得每小时范围内的交易次数
Posted
技术标签:
【中文标题】如何获得每小时范围内的交易次数【英文标题】:how to get no of transactions on an hourly range 【发布时间】:2015-03-24 14:49:47 【问题描述】:表有列 Receiptno: 和 [TransDate] 和 Transtime。 eg:下面的数据
0080052594 2012-10-28 1899-12-30 19:01:38.000
0080052595 2012-10-28 1899-12-30 19:05:09.000
0080052596 2012-10-28 1899-12-30 19:05:15.000
我需要查询以获取每小时间隔和以下格式的交易数量
Hour Inetrval No: Trans
09:01-10:00 10
10:01-11:00 16
【问题讨论】:
你尝试了什么?你遇到了什么错误? 【参考方案1】:您使用的是哪个 DBMS?您的字段是什么具体的数据类型?
在 Access 中,您可以使用总计查询(SQL 中的 GROUP BY),您可以使用附加字段(或分层查询)来执行此操作。您还可以使用内联代码字符串比较。这适用于交易日期和时间的字符串或 DateTime 字段。
例如,表 1:
RECEIPTNO TRANSDATE TRANSTIME
1 1/12/2015 4:32:00 PM
2 1/12/2015 4:45:00 PM
3 1/12/2015 4:52:00 PM
4 1/12/2015 3:57:00 PM
5 1/12/2015 4:07:00 PM
6 1/12/2015 4:09:00 PM
7 1/12/2015 6:15:00 PM
8 1/12/2015 12:34:00 PM
9 1/12/2015 2:45:00 PM
10 1/12/2015 3:15:00 PM
11 1/12/2015 3:17:00 PM
12 1/12/2015 3:49:00 PM
13 1/12/2015 3:47:00 PM
14 1/12/2015 2:52:00 PM
15 1/12/2015 2:36:00 PM
16 1/12/2015 2:17:00 PM
17 1/12/2015 2:25:00 PM
18 1/12/2015 4:12:00 PM
QUERY1 按小时计算为字符串:
SELECT Count(TABLE1.RECEIPTNO) AS CountOfRECEIPTNO, TABLE1.TRANSDATE, Left([TRANSTIME],InStr([TRANSTIME],":")-1) AS [HOUR]
FROM TABLE1
GROUP BY TABLE1.TRANSDATE, Left([TRANSTIME],InStr([TRANSTIME],":")-1)
ORDER BY Left([TRANSTIME],InStr([TRANSTIME],":")-1);
结果:
CountOfRECEIPTNO TRANSDATE HOUR
1 1/12/2015 12
5 1/12/2015 2
5 1/12/2015 3
6 1/12/2015 4
1 1/12/2015 6
【讨论】:
以上是关于如何获得每小时范围内的交易次数的主要内容,如果未能解决你的问题,请参考以下文章