【问题标题】:MDX filter member in where clause vs filter member in From clausewhere 子句中的 MDX 过滤器成员与 From 子句中的过滤器成员
【发布时间】:2012-07-06 05:49:03
【问题描述】:

IN ADVENTURE WORKS 这两种情况有什么区别:

1) From 子句中的过滤器成员:

with
member [existing_categries_Member_Count]as
    count(existing[Product].[Category].[Category].members)
member [existing_subcategries_Member_Count]as
    count(existing[Product].[subCategory].[subCategory].members)
select 
{
    [existing_subcategries_Member_Count],
    [existing_categries_Member_Count]
} on 0
FROM (
    SELECT [Product].[Subcategory].&[31] ON 0
    FROM [Adventure Works])

结果:

existing_subcategries_Member_Count  existing_categries_Member_Count
                    37                            4

与 2)在WHERE子句中过滤成员:

with
member [existing_categries_Member_Count]as
    count(existing[Product].[Category].[Category].members)
member [existing_subcategries_Member_Count]as
    count(existing[Product].[subCategory].[subCategory].members)
select 
{
    [existing_subcategries_Member_Count],
    [existing_categries_Member_Count]
} on 0
FROM [Adventure Works]
WHERE [Product].[Subcategory].&[31]

结果:

existing_subcategries_Member_Count  existing_categries_Member_Count
                   1                              1

我希望这两个查询的结果相同,但我看到的结果不同。 请告诉我 WHERE 和 SUBcube 之间的区别 谢谢

【问题讨论】:

    标签: mdx where-clause subquery


    【解决方案1】:
    • 将成员放入 WHERE 子句时,会覆盖默认成员(上下文已更改)。

    • 评估subselect 后,[Product].[Subcategory] 上的当前成员仍然是[Product].[Subcategory].[All Products]

    当您在计算成员中使用existing 关键字时,您不能得到相同的结果。如果您删除它,您的 2 个查询将给出相同的结果。

    【讨论】:

      猜你喜欢
      • 2013-10-25
      • 2016-07-02
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      • 2016-10-09
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      相关资源
      最近更新 更多