2014-01-07 4 views
0

Я хочу добавить только положительные значения в агрегированную функцию, т. Е. Сумму. это должно только добавить положительную ценность. то, что я делаю этоSSRS- как функция SUM игнорирует отрицательные значения

SUM (((Fields! MonthlyTarget.Value-Fields! MonthToDateUnits.Value-Fields! DUSales.Value)/(Fields! RemaningDays.Value + 1)))

, но теперь я хочу игнорировать отрицательные значения для добавления.

ответ

0

Вы должны изменить числитель на IIf выражение, которое будет возвращать 0, если текущее значение является отрицательным, то есть изменить

Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value 

к чему-то вроде:

IIf(Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value > 0 
    , Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value 
    , 0) 

В зависимости от основных данных типов, вам может понадобиться бросок, чтобы предотвратить агрегацию различных типов данных в выражении и, следовательно, #Error, отображаемых в отчете, то есть

IIf(Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value > 0 
    , Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value 
    , CDbl(0)) 

или

IIf(Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value > 0 
    , Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value 
    , CDec(0)) 

Таким образом, все выражение будет как:

SUM(((IIf(Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value > 0 
     , Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value 
     , 0))/(Fields!RemaningDays.Value+1))) 
Смежные вопросы