Как иногда применять фильтр в таблице таблиц в службах отчетов SQL, а иногда нет? - PullRequest
0 голосов
/ 23 августа 2011

Я делаю отчет в Visual Studio, и я новичок в такого рода отчетах. У меня есть параметр (StringID), и в его свойствах я допускаю несколько значений. У меня также есть таблица со следующим фильтром:

Выражение : [@ExternalID] - Оператор : In - Значение : [@StringID]

Это работает хорошо, но я также хочу позволить пользователю выбрать все реестры (т.е. не фильтровать по StringID), и если это поле пустое, оно показывает все реестры с пустым ExternalID, и это не то, что Я хочу. Итак, вопрос:

Могу ли я иметь дополнительный фильтр или что-то подобное с этой функцией?

Ответы [ 2 ]

1 голос
/ 05 сентября 2011

Я согласен с Марком.

Пройдя немного дальше - вам может потребоваться изменить запрос, чтобы охватить случаи: все ExternalIDs, ExternalID находятся в переданном @StringID или ExternalID пуст.Один из способов получить пустые тары - это использовать «магическое значение», которого нет в данных, например:

...
AND (
    --get all 
    @StringID IS NULL OR 
    --get in passed string 
    ExternalID IN @StringID OR 
    --"magic value" - get empty "ExternalID"
    (
     @StringID = '_EMPTY_' AND 
     ISNULL(ExternalID, '') = '' 
    )
...
1 голос
/ 30 августа 2011

Самое простое решение, вероятно, состоит в том, чтобы изменить запрос для выбора на основе значения параметра - что-то вроде:

...
and (ExternalID in @StringID or @StringID = '')
...
...