Как реализовать пустой параметр в SSMS? - PullRequest
0 голосов
/ 27 февраля 2020

Я создаю отчет SSRS, который включает в себя 3 параметра (supplierid, startdate и enddate), но я пытаюсь реализовать необязательный параметр (тот, который допускает пустое значение), называемый customerid. вот что у меня есть для кода:

WHERE  (invoice_hdr.company_no = 1) AND
       (supplier.supplier_id = @supplierid) AND
       (@customerid = 
          CASE @customerid
            WHEN customer.customer_id THEN customer.customer_id 
            ELSE 0
            END) AND
       (invoice_hdr.invoice_date >= DATEADD(DAY,-365,GETDATE()) AND
       --(invoice_hdr.invoice_date >= @startdate) AND
       --(invoice_hdr.invoice_date <= @enddate) AND
       (invoice_line.tax_item = 'N') AND

Я пытаюсь сказать: ЕСЛИ значение помещено в параметр customerid, то вернуть это значение с другими фильтрами, НО, если значение не помещено в этот параметр, то обойти этот фильтр и продолжить выполнение запроса, как будто его там нет. Я изменил настройки параметров в SSRS, чтобы разрешить пустое / нулевое значение, но отчет об ошибках. Есть какой-либо способ сделать это? это проблема в SSRS?

У меня проблемы с этим, любая помощь будет оценена.

ОБНОВЛЕНИЕ ПОСЛЕ ВКЛЮЧЕНИЯ:

    (
    customer.customer_id = @customerid
    OR
    @customerid =''
    ) AND

и изменение параметра в SSRS это сообщение об ошибке: введите описание изображения здесь

НО, если я Запустите его без этого параметра и раздела кода, отчет работает.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Альтернатива заключается в том, чтобы сделать это

AND (
    customer.customer_id = @customerid
    OR
    @customerid =''
    )

на ваших параметрах клиента, установите для параметра значение

Разрешить пустое значение ("")

таким образом, если вам нужно выбрать клиента, вам не нужно снимать флажок NULL перед использованием параметра

0 голосов
/ 27 февраля 2020

Не уверен, что проблема без сообщения об ошибке, но я обычно использую что-то вроде:

AND (
    customer.customer_id = @customerid
    OR
    @customerid IS NULL
    )

Это будет включать все идентификаторы, которые соответствуют параметру, или ALL ID, если параметр равен NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...