我正在创建一个有两个参数的债务人开票报告。
参数1:这是一个名为@booking_date
的单值参数。我通过将结果作为查询参数添加到查询中来过滤结果(主数据集)。
EG。
WHERE BookingDate = @booking_Date
参数2:此参数有两个指定值 - 是或否。参数名为@live_run
,默认值为“否”。基本上,当此参数的默认值为“否”时,它不会以任何方式限制/影响结果。另一方面,当此参数的值为“是”时,它应通过仅显示已支付发票的预订来限制结果。我可以使用一个名为Booking_Paid_off
的字段,如下所示 - WHERE Booking_Paid_Off = 1.
我有参数1,但我不确定如何引入参数2,因为它将基于两个条件,我是否需要使用If语句或case语句?我是否需要为第二个参数创建新数据集?我只想限制参数2的结果,如果参数2的值为是,否则我希望结果保持不变。
答案 0 :(得分:0)
你有很多选择。您可以完全根据参数切换数据集,或者使用数据集中的IF来确定要运行的查询,或者只是检查WHERE子句中的参数。
我推荐后者。
SELECT
Field1,
Field2
FROM
Table1
WHERE
(
(@live_run = 'Yes' and Booking_Paid_Off = 1)
or (@live_run <> 'Yes')
)