我有特定的方案来显示每个日期的计数列表。以下是查询和我尝试的内容。
我需要使用以下条件每天的日期计数。 (少于日期)
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'
依旧......
我需要在上述条件下动态计算每一天..我很困惑,从哪里开始。截至目前,我正在使用工会多天来获得输出。
答案 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