Как получить сумму столбца между определенным диапазоном дат в SSRS

Я пытаюсь найти способ получить сумму столбца между конкретным диапазоном дат. У меня есть набор данных, который содержит данные за 2016–2019 гг., И я хотел бы использовать одну таблицу для хранения всех четырех лет, чтобы впоследствии разрешить интерактивную сортировку. Я создал параметры с установленными значениями для 1/1 / 201x и 12/31 / 201x.

Это то, что я сейчас пытаюсь, но получаю ошибку.

=IIF(Fields!TxnDate.Value >= Parameters!start2016.Value AND Fields!TxnDate.Value <= Parameters!end2016.Value, sum(Fields!Amount.Value),0)

ошибка

System.Web.Services.Protocols.SoapException: The Value expression for the text box ‘Total2016’ has a scope parameter that is not valid for an aggregate function.  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 dataset.
   at Microsoft.ReportingServices.Library.ReportingService2010Impl.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings)
   at Microsoft.ReportingServices.WebServer.ReportingService2010.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings)

Что мне нужно сделать, чтобы получить выражение для суммирования общей суммы в столбце в диапазоне дат?

Примечание: общая сумма будет настроена как валюта.

Всего 1 ответ


Вы просто хотите переместить свою СУММУ за пределы ИИФ.

=SUM(IIF(Fields!TxnDate.Value >= Parameters!start2016.Value AND Fields!TxnDate.Value <= Parameters!end2016.Value, Fields!Amount.Value, 0))

Если ваша сумма не является целым числом, вам нужно преобразовать 0 в десятичную с помощью CDEC(0) противном случае вы получите ошибку Can't Aggregate Different Types.

Ваша дата - текстовая строка? Ваша оценка может работать некорректно, если это текст в формате мм / дд / гггг. Возможно, вам придется конвертировать в дату, чтобы сравнить с CDATE .


Есть идеи?

10000