MDX YTD计算度量

时间:2016-06-09 12:20:53

标签: sql ssas mdx

我还是MDX的新手,我试图让一些基本功能在我的SSAS多维数据集中运行。你们能指出我在这里做错了什么吗?我已使用以下代码向我的多维数据集添加了计算度量:

CREATE MEMBER CURRENTCUBE.[Measures].[Amount YTD]
AS
  AGGREGATE(
    YTD([OrderDate].[Calendar].CurrentMember)
   ,[Measures].[Amount]),
VISIBLE = 1, ASSOCIATED_MEASURE_GROUP = 'MyMeasureGroup';

之后我试图获取一些数据......

SELECT 
NON EMPTY
{
  [Measures].[Amount]
, [Measures].[Amount YTD]
} ON COLUMNS,
NON EMPTY
{
  [OrderDate].[Month].ALLMEMBERS *
  [Product].[Product Group].ALLMEMBERS 
} ON ROWS
FROM (SELECT ([OrderDate].[Year].&[2014-01-01T00:00:00]:
              [OrderDate].[Year].&[2015-01-01T00:00:00]) ON COLUMNS
FROM [SalesOrderIntake])

这是我得到的输出:

Query result

我没有在输出消息中看到任何错误,这使我很难弄清楚正在起作用的是什么。希望你们能帮助我解决这个问题。

仅供参考:实际选择仅用于测试目的。我只想让YTD运行起来。我已经尝试了几件事情,它总是空洞的,所以如果我直接在SSMS中查询它而不是使用BI工具,我希望得到一些实际的错误。此外,OrderDate维度是由VS提供给我的生成时间维度。

3 个答案:

答案 0 :(得分:1)

在您的查询中,您使用的内容类似于属性层次结构:

[OrderDate].[Month].ALLMEMBERS

该措施使用用户层次结构:

[OrderDate].[Calendar]

如果在脚本中使用Calendar,它可以正常工作吗?

答案 1 :(得分:1)

#Error代码中存在运行时错误时,

MDX通常会重新出现。我可以想到一个可能出现错误的情况。您在计算成员中使用[OrderDate].[Calendar].CurrentMember。但是,如果不是一个,在范围内有来自此层次结构的多个成员,则会抛出错误。

以下是Adventure Works的一个场景。

with member abc as 
sum(YTD([Date].[Calendar].currentmember), [Measures].[Internet Sales Amount])

select abc on 0
from [Adventure Works]
where {[Date].[Calendar].[Date].&[20060115], [Date].[Calendar].[Date].&[20060315]} 

enter image description here

P.S。感谢@whytheq教我这个通过双击单元格来检查这个错误的技巧:)干杯。

答案 2 :(得分:0)

我知道,它的帖子很旧,但是为了后代的利益。

正确的方法是:

UISettings