每个日期的计数清单

时间:2014-05-28 15:17:10

标签: sql-server sql-server-2008 tsql

我有特定的方案来显示每个日期的计数列表。以下是查询和我尝试的内容。

我需要使用以下条件每天的日期计数。 (少于日期)

 SELECT COUNT(*) 
   FROM Queues (nolock)
  WHERE InsDateTime < '2014-05-27'

现在,如果需要多天,我需要使用UNION,如下所示。

 SELECT COUNT(*) 
   FROM Queues (nolock)
  WHERE InsDateTime < '2014-05-27'

  UNION

 SELECT COUNT(*) 
   FROM Queues (nolock)
  WHERE InsDateTime < '2014-05-26'

依旧......

我需要在上述条件下动态计算每一天..我很困惑,从哪里开始。截至目前,我正在使用工会多天来获得输出。

2 个答案:

答案 0 :(得分:2)

因此,假设您希望从5月开始的每一天都进行这些计算:

SELECT  A.InsDateTime,
        B.N
FROM (  SELECT DISTINCT CONVERT(DATE,InsDateTime) InsDateTime
        FROM dbo.Queues) A
OUTER APPLY (SELECT COUNT(*) N
             FROM dbo.Queues
             WHERE InsDateTime < A.InsDateTime) B
WHERE A.InsDateTime >= '20140501'

答案 1 :(得分:1)

select d1.dt, count() 
  from queries d1 
  join queries d2
    on d2.dt < d1.dt 
   and d1.dt in ('2014-05-27', '2014-05-26')
 group by d1.dt 
 order by d1.dt