条款发布的SSRS MDX

时间:2011-06-16 11:07:34

标签: ssrs-2008 ssas where-clause mdx reporting-services

我对MDX-Query有一点问题。

我希望显示所有索赔费用,分为“类型”和“特定文档类型”。

这是我的代码:

    select
    {
        [Measures].[Claim Count],
        [Measures].[Claim Cost Position Count],
        [Measures].[Claim Cost Original],
        [Measures].[Claim Cost Original Average],
        [Measures].[Claim Cost Possible Savings],
        [Measures].[Claim Cost Possible Savings Average],
        [Measures].[Claim Cost Possible Savings Percentage]
    } on 0,
    NON EMPTY{
        [Claim Cost Type].[Claim Cost Type].[Claim Cost Type].Members
    } on 1
    from
        Cube    
where 
    (
        ( {StrToMember(@DateFrom) : StrToMember(@DateTo ) } )
         ,[Claim Document Type].[Document Type].&[1] 
    )

我有四种文件类型:1 - 4

我想只显示三个Documenttypes的数据。

我尝试了以下Where-Clause:

where 
(
    ( {StrToMember(@DateFrom) : StrToMember(@DateTo ) } )
   ,( {[Claim Document Type].[Document Type].&[1] : [Claim Document Type].[Document Type].&[3]} ) 
)

但它只显示了文档类型1和3的数据,而不是1到3。

有人能帮助我吗?

非常感谢,抱歉我的英语不好!

亚历

2 个答案:

答案 0 :(得分:0)

也许[Document Type]属性的OrderBy属性不等于“Key”?在这种情况下,有必要使用

{[Claim Document Type].[Document Type].&[1],
 [Claim Document Type].[Document Type].&[2],
 [Claim Document Type].[Document Type].&[3]}

答案 1 :(得分:0)

在以下条件

where 
(( {StrToMember(@DateFrom) : StrToMember(@DateTo ) } ),( {[Claim Document Type].[Document Type].&[1] : [Claim Document Type].[Document Type].&[3]} ))

即使以下表达式也应该起作用,因为这是一个范围运算符。

({[Claim Document Type].[Document Type].&[1] : [Claim Document Type].[Document Type].&3]})

当您浏览此维度和属性[Claim Document Type].[Document Type]的多维数据集时需要检查的内容维度键顺序是否为

[Claim Document Type].[Document Type].&[1]
[Claim Document Type].[Document Type].&[2]
[Claim Document Type].[Document Type].&[3]

[Claim Document Type].[Document Type].&[1]
[Claim Document Type].[Document Type].&[3]
[Claim Document Type].[Document Type].&[2]

如果您看到订单1,3并且如果输入1:3则不会得到2.所以查看订单然后修改您的范围表达式。

早期的解决方案也可行,但是如果有很多成员那么将所有这些成员都包括在内是不切实际的。