Подсчитать количество столбцов в группе столбцов - PullRequest
0 голосов
/ 26 февраля 2020

Мне нужно сообщить о среднем количестве посещений клиентов, которое каждый инженер совершает в месяц. Мой запрос SQL создает временную таблицу месяцев между начальной и конечной датами, а оставленный соединяет ее с основной таблицей данных, чтобы гарантировать, что строки будут возвращены даже в течение месяцев, когда посещения не проводились.

Так что Примером данных, возвращаемых с SQL, может быть:

enter image description here

В моем отчете есть две группы столбцов, одна для года и одна для месяца, и я есть группа строк для инженера.

enter image description here

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

В конце каждого года есть ячейка, которая содержит Count (Customer) и подсчитывает количество посещений, выполненных инженером за этот год. Я также хотел бы иметь ячейку, которая отображает среднее число посещений, совершаемых каждый месяц в этом году.

Для полного года я мог бы просто разделить на 12. Однако для неполного года мне нужно посчитать число столбцов месяца для этого года.

Я пытался использовать CountDistinct (Месяц), но он учитывает только месяцы, в течение которых было совершено хотя бы одно посещение, что делает среднемесячное значение неправильным.

Как получить счет количества столбцов в группе столбцов, включая столбцы без данных?

Спасибо.

1 Ответ

1 голос
/ 26 февраля 2020

Я бы сделал это, добавив в вашу временную таблицу дат столбец, в котором было выбрано количество месяцев.

Это можно сделать, посчитав месяцы во временной таблице. добавив к нему значение или, если таблица дат содержит больше, чем месяцы, обработайте его на основе переданных вами параметров.

Например,

SELECT *, DATEFIFF("m", @startDate, @endDate) as NoOfMonths
    INTO #myTempDateTable
    FROM myDateTable
    WHERE etc...

Затем в SSRS вы можете просто разделите вашу общую сумму на это число.

...