我正在构建一个包含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中的参数设置,以允许使用空白/空值,但报告出错。反正有这样做吗?这是SSRS中的问题吗?
我在执行此操作时遇到了麻烦,我们将不胜感激。
不知道没有错误消息的问题是什么,但是我通常使用类似的东西:
AND (
customer.customer_id = @customerid
OR
@customerid IS NULL
)
这将包括与该参数匹配的所有ID;如果参数为NULL,则将包括ALL ID。