为不同的日期字段添加参数切换
Adding Parameter toggle for Different date fields
我需要在 SSRS 报告中实现切换,报告的用户可以在其中 select 筛选任一日期 1) 终止日期、2) 激活日期或 3) 计费日期
我在 SSRS 中将参数创建为 @toggle,其值为 T、A、B
@Date_From 是我们要开始日期范围过滤器的下面的字段
@Date_To 是下面我们要结束日期范围过滤器的字段
在我的 TSQL 查询中,我在 where 子句中添加了这个:
AND ((@Toggle = 'A' AND BS.ActivatedDatePK 在 (@Date_From) 和 (@Date_To) 之间
或 (@Toggle = 'T' AND BS.TerminationDatePK BETWEEN (@Date_From) AND (@Date_To))
或 (@Toggle = 'B' AND BS.BillingStartDatePK BETWEEN (@Date_From) AND (@Date_To)))
我没有得到任何一个参数的结果。 Visual Studio 没有抛出任何错误,所以在某些地方我的逻辑只是计划错误。
有没有人有什么想法?
这里有一些东西可以尝试...
逻辑在我看来确实不错(虽然老了累了我可能漏掉了什么!)
- 运行 在服务器上进行跟踪,查看实际传递给查询参数的内容。
- 尝试删除 where 子句中除日期部分之外的所有内容 - 这将确保日期不是问题
- 日期总是很麻烦,请检查数据类型是否正确并且您没有以错误的格式传递日期
- 测试您在 SSMS 或您使用的任何查询编辑器中使用一些手动参数值登录,并确保您获得预期的结果。
- 点击报告工具栏上的刷新按钮,确保您没有看到过时的(或缺少的)数据
综上所述,'might'将数据集查询编写为表达式会更容易。
因此,点击数据集编辑器中查询文本字段旁边的函数按钮,然后将其设置为类似于
的表达式
="SELECT * FROM myTable WHERE BS." &
SWITCH(
Parameters!Toggle.Value = "A", "ActivatedDatePK",
Parameters!Toggle.Value = "T", "TerminationDatePK",
Parameters!Toggle.Value = "B", "BillingStartDatePK") &
" BETWEEN " & Parameters!Date_From.Value " AND " & Parameters!Date_To.Value
您可能需要将日期转换为格式正确的字符串...
我需要在 SSRS 报告中实现切换,报告的用户可以在其中 select 筛选任一日期 1) 终止日期、2) 激活日期或 3) 计费日期
我在 SSRS 中将参数创建为 @toggle,其值为 T、A、B @Date_From 是我们要开始日期范围过滤器的下面的字段 @Date_To 是下面我们要结束日期范围过滤器的字段
在我的 TSQL 查询中,我在 where 子句中添加了这个:
AND ((@Toggle = 'A' AND BS.ActivatedDatePK 在 (@Date_From) 和 (@Date_To) 之间 或 (@Toggle = 'T' AND BS.TerminationDatePK BETWEEN (@Date_From) AND (@Date_To)) 或 (@Toggle = 'B' AND BS.BillingStartDatePK BETWEEN (@Date_From) AND (@Date_To)))
我没有得到任何一个参数的结果。 Visual Studio 没有抛出任何错误,所以在某些地方我的逻辑只是计划错误。
有没有人有什么想法?
这里有一些东西可以尝试...
逻辑在我看来确实不错(虽然老了累了我可能漏掉了什么!)
- 运行 在服务器上进行跟踪,查看实际传递给查询参数的内容。
- 尝试删除 where 子句中除日期部分之外的所有内容 - 这将确保日期不是问题
- 日期总是很麻烦,请检查数据类型是否正确并且您没有以错误的格式传递日期
- 测试您在 SSMS 或您使用的任何查询编辑器中使用一些手动参数值登录,并确保您获得预期的结果。
- 点击报告工具栏上的刷新按钮,确保您没有看到过时的(或缺少的)数据
综上所述,'might'将数据集查询编写为表达式会更容易。
因此,点击数据集编辑器中查询文本字段旁边的函数按钮,然后将其设置为类似于
的表达式="SELECT * FROM myTable WHERE BS." &
SWITCH(
Parameters!Toggle.Value = "A", "ActivatedDatePK",
Parameters!Toggle.Value = "T", "TerminationDatePK",
Parameters!Toggle.Value = "B", "BillingStartDatePK") &
" BETWEEN " & Parameters!Date_From.Value " AND " & Parameters!Date_To.Value
您可能需要将日期转换为格式正确的字符串...