下面的查询返回准确的信息,我只是还没有任何运气试图使这个:待定每月SQL计数
1)更多动态的,所以我不会每个月都
重复相同的代码行2)格式不同,因此需要短短2个月+年列由字段1 +场2
示例代码来查看待计数(基本上,和当(OPEN日期前/上月的最后一天)和(关闭日期在月份之后或它仍然打开)
SELECT
SUM(CAST(case when OPENDATE <= '2014-11-30 23:59:59'
and ((CLOSED >= '2014-12-01')
or (CLOSED is null)) then '1' else '0' end as int)) Nov14
,SUM(CAST(case when OPENDATE <= '2014-12-31 23:59:59'
and ((CLOSED >= '2015-01-01')
or (CLOSED is null)) then '1' else '0' end as int)) Dec14
,SUM(CAST(case when OPENDATE <= '2015-01-30 23:59:59'
and ((CLOSED >= '2015-02-01')
or (CLOSED is null)) then '1' else '0' end as int)) Jan15
,FIELD1,FIELD2
FROM T
GROUP BY FIELD1,FIELD2
个
结果:
FIELD1 FIELD2 NOV14 DEC14 JAN15
A A 2 5 7
A B 6 8 4
C A 5 6 5
...
相反的:
COUNT FIELD1 FIELD2 MO YR
14 A A 12 2014
18 A B 12 2014
16 C A 1 2015
...
有没有办法一次性得到这个?对不起,如果这是一个重复的话题,我已经看了一些董事会,他们帮助我得到了结算......但使用两个日期字段之间的范围,我没有任何运气。提前
感谢
您可以添加更多示例输入和所需输出吗?并生成一个'sqlfiddle.com'demo? – 2015-02-05 18:10:39