0

アドベンチャーワークスでは、この2つの状況の違いは何ですか。

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

2つのクエリで同じ結果が得られると思いますが、結果が異なります。WHEREとSUbcubeの違いを教えてくださいありがとう

4

1 に答える 1

0
  • WHERE句にメンバーを配置すると、デフォルトのメンバーがオーバーライドされます(コンテキストが変更されます)。

  • 副選択が評価された後、現在のメンバー[Product].[Subcategory]はまだ[Product].[Subcategory].[All Products]

計算されたメンバーで既存のキーワードを使用したため、同じ結果を得ることができません。これを削除すると、2つのクエリで同じ結果が得られます。

于 2012-07-06T07:58:11.733 に答える