1

我知道如何将数据库中的最大日期设置为正常查询中的默认参数。在新数据集中我写了这个: ISNULL(MAX(C0_TIME), DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0)) AS END并在默认参数设置中使用它。

但是如何通过使用 MDX 来获得相同的效果呢?我应该使用/写什么?

感谢帮助 ;)

4

2 回答 2

1
Tail([Czas].[Czas].Members).Item(0).Item(0)

应该给你最后一个月,因为它是你Czas层次结构的最后一个成员。Tail返回包含集合元组的子集,第一个Item(0)返回第一个也是唯一的元组,第二个返回第一个也是唯一的成员。

[Czas].[Czas].[Rok].Members如果您想拥有最后一年,只需使用Rok级别更改您从中获取尾部的集合,例如更改为。

要获取多维数据集最后一年内的所有月份,您可以使用范围运算符:withnull作为第二个元素,这意味着“到同一级别的末尾”:

Tail([Czas].[Czas].[Rok].Members).Item(0).Item(0).FirstChild().FirstChild() : null

将返回去年 ( Rok) 中的所有月份。当然,您也可以显式声明最终成员:

Tail([Czas].[Czas].[Rok].Members).Item(0).Item(0).FirstChild().FirstChild() : Tail([Czas].[Czas].Members).Item(0).Item(0)
于 2013-11-11T18:45:39.310 回答
0

我在@FrankPl 的帮助下找到了这个解决方案。
在我在 QueryDesigner 中编写的新数据集中: WITH MEMBER [Measures].[ParameterValue] AS Tail([Czas].[Czas].Members).Item(0).Item(0).UNIQUENAME SELECT {[Measures].[ParameterValue]} ON COLUMNS , [Czas].[Czas].LastChild ON ROWS FROM [PM01].
然后我得到了一行,ParameterValue它在多维数据集中给了我去年、季度和月份的名称。我Default Value在与另一个数据集连接的 EndData 参数中使用它。这个数据集返回了我用来做报告的适当措施。

于 2013-11-25T09:52:47.270 回答