2013-08-28 2 views
2

У меня есть отчет SSRS, в базе данных есть столбец по имени Total_running_hours. Для одного Cycle_number, такого как Cycle_numbe r, есть несколько записей, но разные Block_numbers, а значение в поле Total_running_hours будет одинаковым для всех строк с одинаковыми Cycle_number.
Например. 1 Число циклов с 4 diff block_numbers содержит одинаковые Total_running_hours для всех 4 рядов.Ошибка при поиске суммы группы и условного суммирования в отчетах SSRS

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

Мне нужно, чтобы получить сумму этого поля в нижнем колонтитуле отчета, который должен отображать группу сумм. Независимо от того, сколько строк доступно для одного Cycle_number, он должен принимать только один раз и отображать результат.

Я пытался по-разному, как

=sum(ReportItems!textbox204.Value) // name of text box in Group footer 

Error: Report item expressions can only refer to other report items within the same grouping scope or a containing grouping scope.

=sum(Fields!total_running_hours.Value,Group_name) 

Error: The scope parameter must be set to a string constant that is equal to either the name of a containing group, the name of a containing data region, or the name of a data set.

Может ли один помочь мне в получении суммы Группа мудрая

Спасибо заранее.

ответ

0

Я нашел решение этой проблемы.

Мы не можем просто суммировать значение Total_Running_hours, так как это даст нам дубликаты и неправильный ответ. Мы не можем суммировать группу служб отчетов, поскольку она выходит за рамки . В Reporting Services 2005 нет SUM DISTINCT, поэтому мы не можем получить определенное значение таким образом.

Поскольку запрос может не возвращать определенный тип Cycle_Number, мы не можем использовать его в качестве фильтра.

Решение найдено в том, чтобы добавить колонку номер строки в оконном наборе секционированной по Cycle_Number как этот

ROW_NUMBER() OVER (PARTITION BY Cycle_Number ORDER BY Cycle_Number) КАК 'RowNumber'

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

= SUM (IIF (Fields! RowNumber.Value = 1, Поля! Total_Running_hours.Value, 0))

После использования этого, если и нашли какие-либо ошибки в текстовом поле, как #ERROR

Тогда попробуйте это

= SUM (IIF (Fields! RowNumber.Value = 1, CDbl (Fields! Total_Running_hours.Value), CDbl (0,0)))

 Смежные вопросы

  • Нет связанных вопросов^_^