Как получить номера года в столбцах - PullRequest
0 голосов
/ 18 мая 2019

Мне нужно отобразить количество транзакций в отдельные годы для отдельных сотрудников (ID, 2011, 2012, 2013, 2014), и я должен видеть количество транзакций в каждом году под номером года, но теперь я получаю эту форму:

current form

Как я могу это изменить?

Я думаю, что я должен использовать ГДЕ, но я не знаю, как это сделать

Мой текущий запрос:

SELECT oh.SalesPersonID AS perID, 
       YEAR(oh.OrderDate) AS [Year], COUNT(*)
FROM Sales.SalesOrderHeader oh 
JOIN Person.Person per ON oh.SalesPersonID = per.BusinessEntityID 
GROUP BY SalesPersonID, YEAR(OrderDate)
ORDER BY perID, [Year];

1 Ответ

2 голосов
/ 18 мая 2019

Просто используйте условную агрегацию:

SELECT oh.SalesPersonID AS perID, 
       SUM(CASE WHEN YEAR(oh.OrderDate) = 2011 THEN 1 ELSE 0 END) as cnt_2011,
       SUM(CASE WHEN YEAR(oh.OrderDate) = 2012 THEN 1 ELSE 0 END) as cnt_2012,
       SUM(CASE WHEN YEAR(oh.OrderDate) = 2013 THEN 1 ELSE 0 END) as cnt_2013,
       SUM(CASE WHEN YEAR(oh.OrderDate) = 2014 THEN 1 ELSE 0 END) as cnt_2014
FROM Sales.SalesOrderHeader oh JOIN
     Person.Person per
     ON oh.SalesPersonID = per.BusinessEntityID 
GROUP BY SalesPersonID
ORDER BY perID;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...