Рассчитать медиану в SSRS - PullRequest
2 голосов
/ 07 мая 2019

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

Данные хранятся в общем наборе данных дляиспользовать в построителе отчетов, и этот общий набор данных используется ряд договорных отчетов, поэтому обновление его не вариант.Используемый общий набор данных обеспечивает согласованность между договорными отчетами, поэтому его необходимо использовать.

На этот вопрос уже есть ответы (например, Найти медиану вычисляемого поля в SSRS 2012 & Использование функции «медиана» в вычисляемом поле в SSRS ), но для этого требуются либо скрытые строки / столбцы, либо использование вычисляемого поля в графике.

Нам нужен ответ, который позволяет нам использовать общие наборы данных /хранимых процедур и вычислите значение медианы в SSRS / построителе отчетов.

1 Ответ

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

Этот специальный код можно добавить в отчет:

Public Shared Function Median(ByVal items As Object()) As Decimal
    If items Is Nothing Then
        Return Nothing
    End If

    Dim counter As Integer = items.Length
    If counter = 0 Then
        Return 0
    End If

    System.Array.Sort(items)

    If counter Mod 2 = 1 Then
        Return items(CInt((counter / 2) - 0.5))
    Else
        Dim FirstIndex As Integer = counter \ 2
        Dim SecondIndex As Integer = FirstIndex - 1

        Dim FirstValue As Integer = items(FirstIndex)
        Dim SecondValue As Integer = items(SecondIndex)

        Return (FirstValue + SecondValue) / 2
    End If
End Function

Который затем можно вызвать с помощью следующего =Code.Median(Lookupset(Fields!Contract.Value, Fields!Contract.Value, Fields!Answered.Value, "DS_CallData_LKP"))

В этом примере набор данных "DS_CallData_LKP" включает весь отчет, но обращается к нему снова, чтобы получить список значений, которые будут отсортированы по медиане. Использование lookupset() вместо метода скрытых строк / столбцов, который часто встречается, помогает упростить отчет для последующего редактирования.

...