2016-02-16 2 views
0

Этот вопрос вызывает недоумение.SQL-запрос (подсчет)

У меня есть стол с несколькими колоннами. Две из столбцов: «Месяц» и «Год», где месяц будет 1, 2, 3, через 12 и Год будет 2016, 2015, 2014 и т. Д.

Мне нужно создать запрос, в который он вернется общее количество всех записей за квартал. Итак, «If Month = 1, 2, 3», тогда Quarter равен 1 'и делать это в год.

В идеале я хочу запрос возвращал с записями, как:

года, YearCount, Q1Count, Q2Count, Q3Count и Q4Count

имеет смысл? Любые идеи были бы полезны. Использование SQL Server 2008, если это имеет значение.

ответ

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