我最近使用excel连接到分析服务并生成了用于查询多维数据集的mdx代码。代码如下所示。该代码还使用sql profiler进行了验证。但是,当我去分析服务并浏览多维数据集并将其放入管理工作室的多维数据集中时,出现错误。请让我知道,如果代码可以修复。这段代码正是我所需要的,因此如果有任何修改,请在多维数据集本身中进行替换。使用从数据透视表生成的mdx的问题
代码
SELECT NON EMPTY Hierarchize(DrilldownMember(CrossJoin({
[ColorsDim].[PrimeColor].[All], [ColorsDim].[PrimeColor].[PrimeColor].AllMember},
{([ColorsDim].[SecondColor].[All]) }), [ColorsDim].[PrimeColor].[PrimeColor].AllMember,
[ColorsDim].[SecondColor])) DIMENSION PROPERTIES PARENT_UNIQUE_NAME
,HIERARCHY_UNIQUE_NAME ON COLUMNS
,NON EMPTY Hierarchize({DrilldownMember({
[ColorsDim].[Color_id].[All] },,, INCLUDE_CALC_MEMBERS) }) DIMENSION PROPERTIES
PARENT_UNIQUE_NAME
,HIERARCHY_UNIQUE_NAME ON ROWS FROM [Model]
WHERE ([Measures].[Number of records in ColorDim]) CELL PROPERTIES VALUE
,FORMAT_STRING
,BACK_COLOR
,FORE_COLOR
,FONT_FLAGS
错误
Query Preparation failed.
Additional information
The query cannot be prepared: The query must have at least one axis. The first axis of the query should not have mulitple hierarchies, nor should it reference any dimension other than the measures dimension..
Parameter name: mdx (MDXQueryGenerator)
下面的查询给出了期望的输出:
Select non empty
[ColorsDim].[PrimeColor].children *
[ColorsDim].[SecondColor].children
on 0
, non empty
[ColorsDim].[Color_id].children
on 1
from [model]
where [Measures].[Number of records in ColorDim];
查询中的措施是针对特定维度
你能澄清吗?你在SSMS中使用MDX窗口吗?你在使用Reporting Services吗?你是在SSMS中打开一个对立方体的查询窗口,然后编辑MDX?尝试一个MDX窗口。 – GregGalloway
您的mdx工作正常。但是,当你浏览多维数据集并在其中输入相同的代码时,相同的mdx不起作用。 – Mutai
啊。多维数据集浏览器本质上是Reporting Services MDX查询设计器。它只支持列上的措施。所以我会坚持使用MDX查询窗口而不是多维数据集浏览器。 @whytheq是绝对正确的。 – GregGalloway