如何在SSMS中实现空白参数



我正在构建一个包含3个参数(supplierid、startdate和enddate(的SSRS报告,但我正在尝试实现一个名为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中的参数设置,允许使用空白/null值,但报告出错。有办法这样做吗?这是SSRS中的问题吗?

我在做这件事时遇到了麻烦,如果有任何帮助,我们将不胜感激。

包含后更新:

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

并且更改SSRS中的参数,这是错误消息:在此处输入图像描述

但如果我在没有该参数和代码部分的情况下运行它,报告就会工作。

如果没有错误消息,我不确定问题是什么,但我通常使用以下内容:

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

这将包括与参数匹配的所有ID,或者如果参数为NULL,则包括所有ID。

另一种选择是进行

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

在您的客户参数上,将参数设置为

允许空白值("(

这样,如果您确实需要选择客户,则在使用参数之前不必取消勾选NULL

相关内容

  • 没有找到相关文章

最新更新