SQL按小时选择查询

SQL按小时选择查询,sql,ibm-midrange,Sql,Ibm Midrange,帮助我编写一个select查询,以按小时获取记录计数。我希望在输出中显示所有24小时,即使表中没有特定小时的可用记录 比如说 Date Hour Record count ---------------------------- 2013/03/01 00 - 100 2013/03/01 01 - 0 (No records available in the table) 2013/03/01 02 - 200 2013/03/01 03 - 300 2013/03/01 04 -

帮助我编写一个select查询,以按小时获取记录计数。我希望在输出中显示所有24小时,即使表中没有特定小时的可用记录

比如说

Date       Hour Record count
----------------------------
2013/03/01 00 - 100
2013/03/01 01 - 0 (No records available in the table)
2013/03/01 02 - 200
2013/03/01 03 - 300
2013/03/01 04 - 0 (No records available in the table)
……继续。。。直到23小时

这是我当前使用的查询

SELECT VALUE.DATETIME, COUNT(*) as TOTALPOBYCREATEDTIMEANDDATE 
FROM (SELECT CASE WHEN LENGTH(TRIM(TIMECOL)) <= 4 
                       THEN DATECOL CONCAT '00'
                  WHEN LENGTH(TRIM(TIMECOL)) = 5 
                       THEN DATECOL CONCAT '0' CONCAT SUBSTR(TRIM(TIMECOL),1,1) 
                  ELSE DATECOL CONCAT SUBSTR(TRIM(TIMECOL),1,2) END as DATETIME 
      FROM ORDLIB/ORDERTABLE 
      WHERE DATECOL LIKE '201303%') VALUE 
GROUP BY VALUE.DATETIME 
ORDER BY VALUE.DATETIME
选择VALUE.DATETIME,将(*)计数为TOTALPOBYCREATEDTIMEANDDATE

从(选择长度时的大小写(修剪(TIMECOL))考虑创建一个“小时”表,每个小时有一行。然后进行左连接以表示所有的小时数。没有记录的小时数行将返回为NULL,但如果您喜欢零而不是NULL,则可以合并这些行。

请提供您目前为止在这方面的尝试。这不是让人们只为您编写代码的地方。……是您的吗日期/时间列实际上是字符类型?最好能将它们转换为实际的日期/时间/时间戳类型。不管怎样,我们能得到示例起始数据吗?