我正在做的事情似乎应该是一个具有最佳实践的 SSRS/SQL 比喻,但我昨天大部分时间都在尝试用谷歌搜索并测试它,但没有成功:
我有两个参数:param_date 和 param_partno,用于查询发票表和相关发票。我需要它根据一个参数、另一个参数或两者的组合 (anded) 进行过滤。我已经这样做了一百万次,但显然从来没有直接在 SQL 中使用日期/时间字段。我希望避免使用空值,因为我不确定最终用户是否会看到该复选框
在伪代码中:
select
*
from
invoices
where
case(
if (@param_date > 0) and (param_partno > 0) then +
" param_date=@param_date and param_partno = @param_partno"
if (@param_date > 0) then +
" param_date=@param_date"
if (param_partno > 0) then +
" param_partno = @param_partno"
)
用编程或脚本语言做起来很愚蠢,但是直接在 SQL Server/SSRS 上下文中做这件事让我很不爽。
感谢您的考虑!
吉姆布
PS:这些报告只能在我们公司的内部网上获得。
在@pete 的大力帮助下,这是可行的!现在,我只需要在前端测试格式正确的日期。我仍然对任何有更好或最佳实践的人开放
这对你有用吗?下次请为测试数据添加一些脚本。