Суммируют результаты выражения, содержащего countDistinct, в построителе отчетов

#reporting-services

#службы отчетов

Вопрос:

У меня есть отчет, который требует подсчета количества дней, в течение которых произошло событие. Я создал вычисляемое поле, которое отсеивает даты:

 =IIF(Fields!ID_ACW.Value > 0, Fields!CallDate.Value, Nothing)
  

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

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

 =Sum(CountDistinct(=IIF(Fields!ID_ACW.Value > 0, Fields!CallDate.Value, Nothing)))
  

и

 =RunningValue(CountDistinct(=IIF(Fields!ID_ACW.Value > 0, Fields!CallDate.Value, Nothing)),Sum, "DataSet1")
  

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

Комментарии:

1. Находится ли ваше текущее рабочее выражение внутри rowgroup?

2. Да, оно находится внутри группы строк.

Ответ №1:

Я смог заставить это работать, добавив значение группы строк к дате в вычисляемом поле следующим образом:

 =IIF(Fields!ID_ACW.Value > 0, Fields!CallDate.Value amp; " " amp; Fields!CallHour.Value, Nothing)
  

Теперь я могу использовать
«‘
countDistinct(последний день)
»’
И получают правильные итоги по всем группам строк.

Есть ли более чистый метод для этого?

Ответ №2:

Это из памяти, так что это может быть не на 100%, но вы должны уловить идею…

 =Sum(
CountDistinct(=IIF(Fields!ID_ACW.Value > 0, Fields!CallDate.Value, Nothing), "YourRowGroupName")
)
  

В принципе, вам нужно выполнить свой countDistinct внутри каждой группы строк, а затем суммировать результаты.

Комментарии:

1. Когда я попробовал это, я получил сообщение об ошибке, указывающее, что параметру scope должна быть установлена строковая константа, равная имени содержащей группы. Это даже при правильном введенном имени группы.

2. Имя группы должно быть написано точно (с учетом регистра) и должно быть в двойных кавычках, например SUM(Fields!MyFields.Value, "myRowGroupName")

3. Да, именно так я его ввел, двойные кавычки и все такое. Все еще выдавало ошибку.