2013-10-09 48 views
0

我在数据库中有服务请求。我需要知道在过去的两周内,有多少人被打开/关闭,按天分组。SQL group by current timestamp

我有这样的查询:

SELECT RIGHT('00'+CONVERT(VARCHAR(2), DATEPART(MONTH, OPENTIME)), 2) 
     + '-' 
     + RIGHT('00'+CONVERT(VARCHAR(2), DATEPART(DAY, OPENTIME)), 2) AS 'Day', 
     COUNT(OPENTIME)            AS 
     'Count of Opened', 
     COUNT(CLOSETIME)            AS 
     'Count of Closed' 
FROM JEZD.F_SERVICE_REQUESTS 
WHERE OPENTIME >= DATEADD(DAY, DATEDIFF(DAY, 0, 
           DATEADD(D, -14, CURRENT_TIMESTAMP)), 0 
        ) 
GROUP BY RIGHT('00'+CONVERT(VARCHAR(2), DATEPART(MONTH, OPENTIME)), 2) 
      + '-' 
      + RIGHT('00'+CONVERT(VARCHAR(2), DATEPART(DAY, OPENTIME)), 2) 

这是正在通过的OpenTime所以例如分组今天没有请求打开的服务,这个SQL不会计算任何关闭的门票,直到打开一些新的门票。我试图修改where子句和group子句从OpenTime到Current_Time,但我得到错误Each GROUP BY expression must contain at least one column that is not an outer reference.您有任何解决方法吗?

数据集,截至目前:

Day  Opened Closed 
09-30 29 21 
10-02 23 18 
09-27 27 25 
10-03 16 12 
10-01 59 44 
09-26 23 18 
10-04 31 20 
09-25 35 29 
10-07 22 12 

回答

0

我会执行:

  1. 查询的开业要求在最近14天内
  2. 查询为封闭式请求在最近14天内
  3. 全部加入两个日期
+0

是的,我有它像th正在使用联盟。但是,我正在寻找其他解决方案。谢谢你的回复! – DNac