Я получаю оператор SQL-запроса для подготовки статистического отчета. В
В моем отчете мне нужно отображать значения в нескольких отдельных столбцах. Эти
column
имеют разные числовые диапазоны. (I.e.1, 2-4, 5-10, 11-19, 20-49,
TotalForEachCategory)
. Как мне сформулировать мой запрос SQL
, чтобы сделать то же самое?
В настоящее время эти значения находятся в отдельных строках.
Я работаю над подготовкой отчета SSRS. Для этого мне нужно разработать SQL
заявления. отражающие в отчете столбцы не являются физическими в таблице SQL.
Следовательно, мне нужно получить их с помощью агрегации SQL. Например, я
необходимо отобразить «Общее количество перевозчиков автопарка» для каждой категории
попадая под разные диапазоны флота.
В настоящее время мои результаты появляются, как показано ниже. (Неверный)
Fleet Ranges
----------------------------------------------------------------------
| 1 | 2-4 | 5-10 | 11-19 | 20-49 | TotalForCategory
----------------------------------------------------------------------
| 70 | 0 | 0 | 0 | 0 | 70
| 0 | 38 | 0 | 0 | 0 | 38
| 0 | 1 | 0 | 0 | 0 | 1
| 0 | 0 | 27 | 0 | 0 | 27
Что я пробовал до сих пор
SQL-запрос:
SELECT
(CASE WHEN F.mot_averagefleetsize = 1 THEN COUNT(M.mot_carriernumbername) ELSE 0 END) AS 'Fleet_Range_1',
(CASE WHEN F.mot_averagefleetsize BETWEEN 2 AND 4 THEN COUNT(M.mot_carriernumbername) ELSE 0 END) AS 'Fleet_Range_2-4',
(CASE WHEN F.mot_averagefleetsize BETWEEN 5 AND 10 THEN COUNT(M.mot_carriernumbername) ELSE 0 END) AS 'Fleet_Range_5-10',
(CASE WHEN F.mot_averagefleetsize BETWEEN 11 AND 19 THEN COUNT(M.mot_carriernumbername) ELSE 0 END) AS 'Fleet_Range_11-19',
(CASE WHEN F.mot_averagefleetsize BETWEEN 20 AND 49 THEN COUNT(M.mot_carriernumbername) ELSE 0 END) AS 'Fleet_Range_20-49'
FROM
Table1 F
INNER JOIN
Table2 M ON M.column1 = F.column2
GROUP BY
F.mot_averagefleetsize
Мой ожидаемый результат должен быть таким:
Fleet Ranges
----------------------------------------------------------------------
| 1 | 2-4 | 5-10 | 11-19 | 20-49 | TotalForCategory
----------------------------------------------------------------------
Category #1| 70 | 39 | 27 | 0 | 0 | 136
|