Условно подсчитывать на основе данных других полей в отчете SSRS

Я работаю с отчетом SSRS, у меня есть поле с именем Details, и я хотел бы получить количество других полей SerialNumber.

Короче говоря, я хочу получить общее количество SerialNumber, у которого нет Details.

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

=CStr(COUNT(IIF(Not(IsNothing(Fields!Details.Value)),Fields!SerialNumber.Value,0)))

Как я могу добиться этого с помощью выражения? Пожалуйста помоги.


person pedram    schedule 08.02.2016    source источник
comment
Обратите внимание на выполнение логического отрицания с использованием оператора Not в функции isNothing. На самом деле вам нужны нулевые Details значения, а не not null. Попробуйте: COUNT(IIF(IsNothing(Fields!Details.Value),Fields!SerialNumber.Value,Nothing))   -  person alejandro zuleta    schedule 08.02.2016
comment
Поделитесь образцом своего набора данных и ожидаемыми результатами, чтобы воспроизвести вашу проблему.   -  person alejandro zuleta    schedule 08.02.2016
comment
спасибо @alejandrozuleta   -  person pedram    schedule 09.02.2016


Ответы (1)


Проблема была с моими данными. В наборе данных я получал строки на основе Isnull(), как показано ниже

SELECT CASE 
            WHEN 'Y'='Y' THEN ISNULL(Code ,'') + '  ' + ISNULL(Description ,'')
            ELSE CASE 
                      WHEN ISNULL(Code ,'')='' THEN ISNULL(RefCharge ,'') 
                          +'  '+ISNULL(RefDescription ,'')
                      ELSE ISNULL(Code ,'')+'  '+ISNULL(Description ,'')
                 END
       END               AS Details

So it was showing (3 blank spaces) and my expression was.

=COUNT(IIF(Fields!Details.Value<>"",Fields!Number.Value,Nothing))

Finally I tried below, now it's working fine now.

=COUNT(IIF(Trim(Fields!Details.Value)<>"",Fields!Number.Value,Nothing))

Примечание: Итак, я заметил, что всякий раз, когда нам нужно проверить такие условия, мы должны использовать Trim()

person pedram    schedule 09.02.2016