MDX查询不返回SSIS数据流任务中的行?

时间:2017-12-19 22:09:02

标签: ssis ssas mdx

所以我在SSMS中浏览SSAS多维数据集并使用查询设计器来构建我的查询。我只想要返回尺寸而不是尺寸。以下是我的步骤:

我右键单击多维数据集并选择浏览。然后我拖过我想要的尺寸,显然没有得到任何结果,因为我没有选择任何措施。然后,我点击显示空单元格'选项,和bam,有我想要的一切!!!

从这一点开始,我点击“设计模式”'按钮以显示查询。问题是,当我将此查询放入SSIS中的数据流任务时,它不会返回任何行。

这就是我所拥有的:

   SELECT { } ON COLUMNS, { ([Customer].[Customer].[Customer Number].ALLMEMBERS ) } 
   DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM [Customer] 
   CELL PROPERTIES VALUE

当我在SSMS中运行时,我会得到行。当我在SSIS中运行时,我什么都没得到。如何在SSIS中返回与SSMS中相同的行?

1 个答案:

答案 0 :(得分:0)

您的查询问题是它没有列 - SELECT { } ON COLUMNS。这会混淆SSIS - 它获得零列数据集。 SSIS必须知道数据集,其列和属性,如数据类型,编码等。您的查询不提供列,SSIS不能使用它;虽然从MDX语法的角度来看它是好的。

您需要更改查询以返回一些列,例如:假设您在[客户]上有层次结构。[客户]。[客户编号])

WITH MEMBER [Measures].[Caption] AS [Customer].[Customer].CURRENTMEMBER.MEMBER_CAPTION  
MEMBER [Measures].[U_Name] AS [Customer].[Customer].CURRENTMEMBER.UNIQUE_NAME
SELECT { [Measures].[Caption], [Measures].[U_Name] } ON COLUMNS, 
    { ([Customer].[Customer].[Customer Number].ALLMEMBERS ) } ON ROWS
FROM [Customer]   

此查询返回两列 - CaptionU_Name