SQL запрос для ежемесячного / годового отчета - PullRequest
1 голос
/ 17 февраля 2012

У меня есть таблица продаж, в которой есть поля типа

   upgrade[yes/no] 
   date upgraded[datetime] 
   user[username]

Что я хочу выполнить запрос и показывать обновления ежемесячно и ежегодно, например, я хочу создать отчет как январь 2012 [всего30 обновлений, пользователь 1 - 10 обновлений, пользователь 2 - 15 обновлений, пользователь 3 - 5 обновлений.Точно так же я хочу достичь этого на ежегодной основе.

Ответы [ 2 ]

1 голос
/ 17 февраля 2012

Используя SSRS, вы можете довольно легко создавать несколько групп и отображать всю эту информацию с первого взгляда.

В обычном запросе T-SQL вы можете сделать это следующим образом:

SELECT
    YEAR(s.[date upgraded]),
    s.[user],
    COUNT(*) AS [total upgrades]
FROM [Sales] s
WHERE s.[upgrade] = 'yes'
GROUP BY s.[user], YEAR(s.[date upgraded]) WITH ROLLUP
ORDER BY YEAR(s.[date upgraded]), s.[user]

SELECT
    MONTH(s.[date upgraded]),
    s.[user],
    COUNT(*) AS [total upgrades]
FROM [Sales] s
WHERE s.[upgrade] = 'yes'
GROUP BY s.[user], MONTH(s.[date upgraded]) WITH ROLLUP
ORDER BY MONTH(s.[date upgraded]), s.[user]
1 голос
/ 17 февраля 2012
SELECT USERNAME,
CONVERT(CHAR(7), DATE_FIELD,120) AS MONTH,
SUM(CASE WHEN UPGRADE = 'YES' THEN 1 ELSE 0 END) UPGRADED
FROM TABLE
GROUP BY USERNAME, CONVERT(CHAR(7), DATE_FIELD,120)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...