我一直在尝试在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
提前谢谢
答案 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