【问题标题】:Filter member properties in Query Designer using MDX使用 MDX 在查询设计器中筛选成员属性
【发布时间】:2016-03-17 13:27:26
【问题描述】:

如何使用 MDX 过滤两个成员属性?

目前我有以下解决方案。它有效,但我确信MDX 查询会更有效。

查询设计器中的数据集具有以下MDX 以将成员属性包含为字段:

DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME, [Store].[Store].[Closed Date],[Store].[Store].[Opening Date]

我在数据集属性中使用两个过滤器,表达式如下:

    =Cint(Fields!Opening_Date.Value) 
    < 
    =Cint(Format(Today(), "yyyyMMdd"))

    =Cint(Fields!Closed_Date.Value) 
    >
    =Cint(Format(Today(), "yyyyMMdd"))

【问题讨论】:

  • 您面临的问题是什么?乍一看,我看到您想要获取 Closed_Date 大于今天日期的行,这是否适合您的逻辑?
  • 能否请您添加一些您已经尝试过的mdx
  • @alejandro zuleta:Exaclty,它的运行速度很慢,我想(如果可能)将此过滤器添加到 MDX 查询中。
  • @whytheq:我尝试过使用过滤器功能,但是它没有返回任何行。我会用一些代码回复你。
  • @krynil - 你有机会测试我的方法吗?

标签: reporting-services mdx ssrs-2012 ssrs-expression query-designer


【解决方案1】:

我怀疑下面的表现是否令人满意,但你可以试一试。

SELECT SomeDim.SomeHIerarchy.MEMBER 
HAVING 
Val(SomeDim.SomeHIerarchy.CURRENTMEMBER.Properties("Opening Date")) <  Format(now(), "dd-MM-yyyy")
Val(SomeDim.SomeHIerarchy.CURRENTMEMBER.Properties("Closing Date")) > Format(now(), "dd-MM-yyyy")
ON 1,
Measures.Foo on 0
FROM [Your Cube]

【讨论】:

  • 谢谢!我会试试这个:)
  • 我设法通过在 MDX 中使用过滤器解决了这个问题。您的代码肯定有帮助,非常感谢!
【解决方案2】:

我发现使用过滤器是解决这个问题的最佳方法:

filter(
  [Store].[Store].members, [Store].[Store].Properties( "Opening Date" ) < Format(Now(),'yyyyMMdd') 
  and [Store].[Store].Properties( "Closed Date" ) > Format(Now(),'yyyyMMdd'))
)

【讨论】:

    猜你喜欢
    • 2016-01-29
    • 1970-01-01
    • 2013-03-04
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多