首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SSRS中使用单个数据集设置2个参数

在SSRS中使用单个数据集设置2个参数
EN

Stack Overflow用户
提问于 2018-04-11 14:07:11
回答 2查看 35关注 0票数 1

我创建了一个有3列的视图:

  • 标签
  • start_date
  • end_date

例如(如果今天是2018-04-11 10:12:54.4770000):

  • 2018-04-11 :00:00.0000000 2018-04-12 00:00:00.0000000
  • 2018-04-10 : 00:00:00.0000000 2018-04-11 00:00:00.0000000
  • 上周2018-04-02 :00:00.0000000,2018-04-09 :00:00.0000000
  • 最后7天(滚动) 2018-04-04 : 00:00:00.0000000 2018-04-11 10:12:54.4770000
  • 上个月2018-03-01 :00:00.0000000 2018-04-01 00:00:00.0000000
  • 2018-01-01 :00:00.0000000 2018-04-01 00:00:00.0000000
  • 去年,2017-01-01 : 00:00:00.0000000,2018-01-01 : 00:00:00.0000000
  • WTD,2018-04-08 :00:00.0000000,2018-04-11 10:12:54.4770000
  • MTD 2018-04-01 00:00:00.0000000 2018-04-11 10:12:54.4770000
  • QTD,2018-04-01 00:00:00.0000000,2018-04-11 10:12:54.4770000
  • YTD 2018-01-01 : 00:00:00.0000000 2018-04-11 10:12:54.4770000
  • 最后30天(滚动) 2018-03-12 00:00:00.0000000 2018-04-11 10:12:54.4770000
  • 最后90天(滚动) 2018-01-11 00:00:00.0000000 2018-04-11 10:12:54.4770000
  • 最后365天(滚动),2017-04-11 00:00:00.0000000,2018-04-11 10:12:54.4770000

诸若此类。因此,我的目标是为用户提供显示的标签下拉框,当他选择任何标签时,我希望为其他数据集分配@start_date和@end_date参数。有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2018-04-11 15:18:09

添加一个名为“如dsDropDown”的数据集,并将查询设置为

SELECT * FROM myView

将参数myParameter添加到报表中,并将可用值设置为dsDropDown数据集。由于没有密钥,因此需要将值和标签属性都设置为label字段。

接下来,添加主数据集并加入到视图中,通过视图标签进行筛选,类似于。

代码语言:javascript
复制
SELECT * 
    FROM myTable t
        JOIN myView v on t.SomeDate >= v.start_date AND t.SomeDate <= v.end_date
WHERE v.label = @myParameter

确保dataset查询中的参数名称与参数名称完全匹配(它们区分大小写)。

接下来,只需添加表格/矩阵/图表等,并将其指向主数据集。

我认为应该是这样,但这是我的头顶,所以它可能不是100%正确的。希望你能跟上我的脚步。

OP响应后的更新:--如果需要这些参数--那么需要添加两个新的数据集,dsStartdsEnd。对这些数据集的查询如下。

代码语言:javascript
复制
SELECT start_date from myView WHERE label = @myParameter

代码语言:javascript
复制
SELECT end_date from myView WHERE label = @myParameter

然后添加两个新参数@start' and@end` `,并将默认值设置为相应的数据集。

选择第一个参数时,秒2将自动更新。您可以在确认@start和@end参数工作后将其设置为隐藏参数。

然后将主数据集查询更改为..

代码语言:javascript
复制
SELECT * 
        FROM myTable t
    WHERE t.Somedate between @start AND @end
票数 1
EN

Stack Overflow用户

发布于 2018-04-12 09:52:38

我自己回答问题。“”版本有效,但我想使用单个数据集。所以,我所做的:

  1. 在数据集中添加了连接列,其中包含起始日期和结束日期,例如:"2018-04-11 00:00:00.0000000\x{##**$$}2014-12 00:00.0000000“
  2. 创建2个内部参数,并相应地将默认值作为=Split(Parameters!date_selector.Value,"|||")(0)=Split(Parameters!date_selector.Value,"|||")(1)

就这样

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49777259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档