按时间对SQL-Result进行分组不起作用

时间:2017-02-01 13:50:26

标签: sql firebird firebird2.5

我正在尝试在Firebird 2.5中设置SQL查询,以便按时间对销售进行统计。

我到目前为止跟进的方法是:

SELECT EXTRACT(WEEKDAY FROM ODR.ORDERDATE) AS S1, EXTRACT(HOUR FROM ODR.ORDERDATE) AS S2,
        CASE 
           WHEN (EXTRACT(HOUR FROM ODR.ORDERDATE)) < 10 THEN 
                '0' || CAST(EXTRACT(HOUR FROM ODR.ORDERDATE) AS VARCHAR(2)) || ':00 - ' || '0' || 
                CAST(EXTRACT(HOUR FROM ODR.ORDERDATE) AS VARCHAR(2)) || ':59 ' 
           WHEN EXTRACT(HOUR FROM ODR.ORDERDATE) >= 10 THEN 
                CAST(EXTRACT(HOUR FROM ODR.ORDERDATE) AS VARCHAR(2)) || ':00 - ' || 
                CAST(EXTRACT(HOUR FROM ODR.ORDERDATE) AS VARCHAR(2)) || ':59 ' 
        END AS TINTERVAL, 
        COUNT(ODR.ID) AS ABSCOUNT 
FROM ODR 
GROUP BY S1,S2,TINTERVAL
ORDER BY S1,S2 ASC

此查询的语法似乎适用于Firebird ODBC 2.5建立的SQL-Connection。

我的问题:

对于hour=0 (<10),查询返回的结果集不会被订单给出的数据显示。

e.g。此查询的结果集可能如下所示:

  1. S1 S2 TINTERVAL ABSCOUNT
  2. 0 0 00:00 - 00:59 30
  3. 0 1 01:00 - 01:59 2
  4. 我不知道这个查询在小时= 0时是如何得出它的奇怪计数的。 这对我没有任何意义。

0 个答案:

没有答案