SSRS получить сумму на поле выражения - PullRequest
0 голосов
/ 07 мая 2018

Предположим, у меня есть следующие данные:

TimeTable
Person  Week   Date        EnterTime ExitTime PeriodDiff
----------------------------------------------------
John    1      01.01.2018  09:15     10:35    1:20
John    1      01.01.2018  10:55     12:23    1:28
John    1      01.01.2018  13:00     17:35    4:35
John    1      02.01.2018  09:00     16:35    7:35
John    2      08.01.2018  09:05     11:40    2:35
John    2      08.01.2018  16:15     19:35    3:20
John    2      09.01.2018  10:50     21:57    11:07

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

                 +[WeekGroup]                                                  +
                 ---------------------------------------------------------------
                                +[DateGroup]                                   +
                 WeeklyTotal    ------------------------------------------------
Person                          FirstEntry     LastExit      TimeInside   Period
[PersonGroup]    <<Exp3>>       Min[EnterTime] Max[ExitTime] <<Exp1>>     <<Exp2>>   

Exp1 = Max (ExitTime) - Min (EnterTime)
Exp2 = Sum (PeriodDiff)
Exp3 должен быть Sum (Max (ExitTime) - Min (EnterTime)) для каждого дня

Все работает, кроме Exp3.
Проблема в том, что Exp3 находится за пределами DateGroup, поэтому минимальные / максимальные значения относятся к каждому из значений на соответствующей неделе. Также я не могу использовать сумму периода из-за пропусков во времени.
Как я могу получить сумму каждой недели, рассчитанную разницу во времени? Значение суммы (Exp1)?

1 Ответ

0 голосов
/ 28 ноября 2018

Вы можете использовать следующее выражение, чтобы получить Max() или Min() внутри группы или вне группы, если вы добавляете область действия к статистической функции:

'Returns the max of the whole DataSet
=Min(Fields!ExitTime.Value), "YourDataSetName") 

 'Returns the max of the group with the name 'YourGroupName'
=Min(Fields!ExitTime.Value), "YourGroupName")

То, что вы также можете сделать, это почитать ваше первое выражение Expr1() со следующим выражением (допустим, первое выражение в Textbox1):

=Sum(ReportItems!Textbox1.Value)
...