使用来自多维数据集的数据在SSRS中实现日期范围

时间:2018-01-02 23:47:51

标签: reporting-services mdx ssrs-2012

我一直在尝试在SSRS 2015中实现日期范围参数。数据来自多维数据集。我将日期拖到查询设计器的维度框中,然后进入参数选项卡将fromDate和toDate更改为日期/时间格式,这导致了以下MDX查询。

SELECT ( STRTOMEMBER(@FromDate, CONSTRAINED) : 
STRTOMEMBER(@ToDate, CONSTRAINED) )

我的日期格式是dd / mm / yyyy。我已经查看了几个论坛并尝试了一些方法,但继续得到错误:

The restrictions imposed by the CONSTRAINED flag in the STRTOMEMBER function 
were violated

提前谢谢

2 个答案:

答案 0 :(得分:0)

您收到的错误消息表示该格式的多维数据集中不存在参数值。要解决此问题,您需要创建一个可以格式化并显示给用户的字段,而无需更改查询使用的值。

在查询设计器中创建参数时,它会自动创建隐藏数据集,这些数据集会填充参数的可用值。要查看此内容,请右键单击“数据集”文件夹,然后选择“显示隐藏数据集”。

现在,转到数据集属性并在“字段”选项卡中添加计算字段。这将是你很好的格式化日期。

在每个参数的参数属性中,转到“可用值”选项卡。保留Value字段,但将Label字段更改为您创建的新列。

现在下拉列表将显示友好标签,但使用幕后的真实价值!

答案 1 :(得分:0)

您的参数需要在完整地址s中形成。例如@FromDate可能是这个 - 我使用了DateKey:

mdx

因此,在传递之前需要在ssrs中进行一些连接:

'[Date Dim].[Date Hier].&[20180301]'

我也很想使用"[Date Dim].[Date Hier].&[" + 20180301 + "]" //<<you'll need to change to the names used in your cube ,因为你想要一套。所以我可能会这样:

strToSet

这是一个很好的参考:Range parameter on the MDX-query