Рассчитать среднее в SSRS 2016 - PullRequest
0 голосов
/ 17 июня 2019

Я использую приложение SSRS 2016 для извлечения данных из списка SharePoint.Моя задача состоит в том, чтобы вычислить среднее значение DaysUsed и среднее процентное значение для столбца.

Это матричный отчет, который состоит из двух столбцов:

  • Sum (Fields! Days.Value)
  • Сумма (Fields! Percentage.Value)

Задача - показать средние дни и средний процент.Я попытался =Avg(Fields!Days.Value), но это показывает неправильный результат.

enter image description here

ОБНОВЛЕНИЕ

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

enter image description here

DaysUsed вычисляется между двумя полями [FromDate] и [BeforeDate] путем суммирования общего количества дней минус.выходные.см. ниже:

=(DateDiff(DateInterval.day,CDate(format(Fields!FromDate.Value,"MM-dd-yyyy")), CDate(format(Fields!UntilDate.Value,"MM-dd-yyyy")))+1)
- (DateDiff(DateInterval.WeekOfYear,CDate(format(Fields!FromDate.Value,"MM-dd-yyyy")), CDate(format(Fields!UntilDate.Value,"MM-dd-yyyy")))*2) 
- IIF(Weekday( CDate(format(Fields!FromDate.Value,"MM-dd-yyyy")),1) = 1,1,0)
- IIF(Weekday( CDate(format(Fields!FromDate.Value,"MM-dd-yyyy")),1) = 7,1,0)
- IIF(Weekday( CDate(format(Fields!UntilDate.Value,"MM-dd-yyyy")),1) = 1,1,0)
- IIF(Weekday( CDate(format(Fields!UntilDate.Value,"MM-dd-yyyy")),1) = 7,1,0)

Кроме того, строка [DaysUsed] тогда состоит из IIF (значение равно нулю, а затем показывает 0, в противном случае отображается общее значение использованных дней).

=IIF(IsNothing(Sum(Fields!Days.Value)), "0", Sum(Fields!Days.Value) )

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Если у вас есть поле с именем Fields!Days.Value, я думаю, ваши данные на скриншоте уже сгруппированы по месяцам. Это означает выражение

=Avg(Fields!Days.Value)

дает среднее значение за все дни (сумма всех дней / количество всех дней).

Если вы хотите использовать сгруппированные значения (по mounth), вы можете использовать следующее выражение, когда находитесь внутри области действия (месячный соцп; указывается в скобках в самой левой части таблицы)

=Sum(Fields!Days.Value) / Count(Fields!Days.Value)

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

=Sum(Fields!Days.Value, "YourMonthGroupName") / Count(Fields!Days.Value, "YourMonthGroupName")
0 голосов
/ 17 июня 2019
Sum(Fields!Days.Value)/CountRows()

Должен дать вам средние дни.То же самое касается и других.

...