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

Implementing a date range in SSRS with the data coming from a cube

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

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

我的日期格式是 dd/mm/yyyy。我查看了几个论坛并尝试了一些方法,但仍然出现错误:

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

提前致谢

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

当您在查询设计器中创建参数时,它会自动创建隐藏的数据集来填充参数的可用值。要查看此内容,请右键单击数据集文件夹并 select 显示隐藏的数据集。

现在,转到数据集属性并在“字段”选项卡中添加一个计算字段。这将是您格式正确的日期。

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

现在下拉菜单将显示友好标签,但在幕后使用真实值!

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

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

因此在通过之前需要在 ssrs 中进行一些串联:

"[Date Dim].[Date Hier].&[" + 20180301 + "]"  //<<you'll need to change to the names used in your cube

我也很想使用 strToSet,因为你想要一套。所以我的可能是这样的:

( STRTOSET( "[Date Dim].[Date Hier].&[" + @FromDate + "]:" +
          "[Date Dim].[Date Hier].&[" + @ToDate + "]" , CONSTRAINED) )

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