“收据信息”的SSRS参数

时间:2013-02-04 15:33:36

标签: reporting-services

我有一份"收据信息报告"。例如

ID         Name                Date             Createtor        Payment Date

1          Bob               12.12.2012           bb               01.01.2013

2          Smith             15.01.2010           smt              15.02.2011

3          Peter             21.02.2011           ptr                  null       

4          Sarah             18.06.2012           srh              23.07.2012

我想在此报告中添加一个参数;

  • 列出所有收据(然后它会列出上面的报告)

  • 列出Sarah创建的所有收据

  • 列出已支付的所有收据。

  • 列出尚未支付的所有收据。

我创建了没有参数的报告。如何将这些参数调整到我的报告中?

1 个答案:

答案 0 :(得分:0)

您可以按如下方式参数化查询:

IF @PAYMENTSTATUS = 'ALL'
BEGIN
SELECT ID, NAME, [DATE], CREATOR, PAYMENTDATE FROM RECEIPT 
WHERE NAME = CASE @NAME WHEN 'ALL' THEN NAME ELSE @NAME END 
END
IF @PAYMENTSTATUS = 'PAID'
BEGIN
SELECT ID, NAME, [DATE], CREATOR, PAYMENTDATE FROM RECEIPT 
WHERE NAME = CASE @NAME WHEN 'ALL' THEN NAME ELSE @NAME END 
AND PAYMENTDATE IS NOT NULL
END
IF @PAYMENTSTATUS = 'UNPAID'
BEGIN
SELECT ID, NAME, [DATE], CREATOR, PAYMENTDATE FROM RECEIPT 
WHERE NAME = CASE @NAME WHEN 'ALL' THEN NAME ELSE @NAME END 
AND PAYMENTDATE IS NULL
END 

真的可能更简单,如果不是我无法想象如何在SQL where子句中正确处理日期列,那么你就不需要3个if语句。

接下来,您可以在参数属性中使用不同的数据集,从查询中获取值,以填充@Name参数,例如

select 'ALL' 
UNION
SELECT DISTINCT NAME FROM RECEIPT

最后,您可以简单地使用@PAYMENTSTATUS参数的可用值,并指定值'ALL','PAID','UNPAID'。

相关问题