【问题标题】:MDX (SSRS) Parameter subsetMDX (SSRS) 参数子集
【发布时间】:2016-11-01 11:10:04
【问题描述】:

我需要一些关于 MDX 中的 SSRS 参数代码的帮助 上下文 我正在尝试使用 and type = matter 和房屋数量(不用作参数)返回 Country 位置 对于下拉列表 我正在使用标题、uniqueName 和 level.ordinal 方法

WITH MEMBER [Measures].[ParameterCaption] AS
 [Country].[Location].CurrentMember.Member_Caption 
MEMBER [Measures].[ParameterCaption2] AS
 [Type].[Type].CurrentMember.Member_Caption
MEMBER [Measures].[ParameterValue] AS
[Country].[Location].CurrentMember.UniqueName
MEMBER [Measures].[ParameterLevel] AS 
[Country].[Location].CurrentMember.Level.Ordinal
SELECT 
{ [Measures].[HouseCount]
, [Measures].[ParameterCaption]
,[Measures].[ParameterValue]
,[Measures].[ParameterLevel]}ON COLUMNS
,  ([Type].[Type].ALLmembers )ON ROWS
FROM [Cube];

这不会返回我所追求的

我应该只看到一个位置列表,其中它们与 type =matter 交叉并且具有 House count 我在调整代码时要么获取所有位置,要么获取显示表的值

【问题讨论】:

    标签: reporting-services parameters mdx


    【解决方案1】:

    您可能需要将[Country].[Location] 移动到上下文中并键入WHERE 子句?

    WITH MEMBER [Measures].[ParameterCaption] AS
       [Country].[Location].CurrentMember.Member_Caption 
    MEMBER [Measures].[ParameterCaption2] AS
        [Type].[Type].CurrentMember.Member_Caption
    MEMBER [Measures].[ParameterValue] AS
        [Country].[Location].CurrentMember.UniqueName
    MEMBER [Measures].[ParameterLevel] AS 
        [Country].[Location].CurrentMember.Level.Ordinal
    SELECT 
        {
          [Measures].[HouseCount],
          [Measures].[ParameterCaption],
          [Measures].[ParameterValue],
          [Measures].[ParameterLevel]
        } ON COLUMNS,
        NonEmpty(
          [Country].[Location].[Location].MEMBERS
         ,[Measures].[HouseCount]
        ) ON ROWS
    FROM [Cube]
    WHERE [Type].[Type].[matter];
    

    【讨论】:

    • 您是否还需要过滤到具有房屋数量的行?也许将 ON ROWS 子句更改为 NonEmpty([Country].[Location].[Location].MEMBERS, [Measures].[HouseCount]) ON ROWS 看看是否可行
    • 感谢@GregGalloway 我错过了他们的那一点要求
    【解决方案2】:

    当前编写的查询中没有过滤。要实现您所说的(仅返回 Typematter 的位置),然后只需在 ROWS 上选择该类型即可。

    WITH MEMBER [Measures].[ParameterCaption] AS
       [Country].[Location].CurrentMember.Member_Caption 
    MEMBER [Measures].[ParameterCaption2] AS
        [Type].[Type].CurrentMember.Member_Caption
    MEMBER [Measures].[ParameterValue] AS
        [Country].[Location].CurrentMember.UniqueName
    MEMBER [Measures].[ParameterLevel] AS 
        [Country].[Location].CurrentMember.Level.Ordinal
    SELECT 
        {
          [Measures].[HouseCount],
          [Measures].[ParameterCaption],
          [Measures].[ParameterValue],
          [Measures].[ParameterLevel]
        } ON COLUMNS,
        ( [Type].[Type].[matter] ) ON ROWS
    FROM [Cube];
    

    【讨论】:

    • 大家好,因为即使使用 Where 语句也选择了 [Measures].[ParameterCaption],它返回所有位置,而不仅仅是类型重要的位置
    猜你喜欢
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多