这个问题令我感到困惑。
我有一个包含几列的表格。其中两列为“月”和“年”,其中月份为1,2,3,12,年份为2016年,2015年,2014年等。
我需要创建一个查询,它将按季度返回年度所有记录的总数。所以'如果月份= 1,2,3'则季度为1'并且每年都这样做。
理想情况下,我希望使用以下记录返回查询:
Year,YearCount,Q1Count,Q2Count,Q3Count和Q4Count
有意义吗?任何想法都会有所帮助。使用SQL Server 2008,如果这很重要。
答案 0 :(得分:3)
我想这会起作用
Select
Year
,Count(id) 'YearCount'
,SUM(CASE WHEN MONTH IN (1,2,3) THEN 1 ELSE 0 END) 'Q1 COUNT'
,SUM(CASE WHEN MONTH IN (4,5,6) THEN 1 ELSE 0 END) 'Q2 COUNT'
,SUM(CASE WHEN MONTH IN (7,8,9) THEN 1 ELSE 0 END) 'Q3 COUNT'
,SUM(CASE WHEN MONTH IN (10,11,12) THEN 1 ELSE 0 END) 'Q4 COUNT'
FROM TABLE
GROUP BY Year