我正在学习《一步一步的MDX》这本书。我正在关注这些示例,并且对如何理解 EXISTING 有疑问。我理解(我认为)下面的 1 和 2,但不理解 3。
注意:屏幕截图不完整,但您可以理解。
1 它返回所有产品的前 5 名经销商销售额,并且只与 4 个类别交叉连接,这是不希望的。您可以看到排名前 5 位的产品在重复。
SELECT
{([Measures].[Reseller Sales Amount])} ON COLUMNS,
([Product].[Category].[Category].Members) *
Generate(
{[Product].[Category].[Category].Members},
TopCount(
{[Product].[Product].[Product].Members},
5,
([Measures].[Reseller Sales Amount])
),
ALL
) ON ROWS
FROM [Step-by-Step]
2 现在我添加 EXISTING,它返回四个类别中每个类别的前 5 名经销商销售额,这是正确的。
SELECT
{([Measures].[Reseller Sales Amount])} ON COLUMNS,
([Product].[Category].[Category].Members) *
Generate(
{[Product].[Category].[Category].Members},
TopCount(
EXISTING {[Product].[Product].[Product].Members},
5,
([Measures].[Reseller Sales Amount])
),
ALL
) ON ROWS
FROM [Step-by-Step]
3 现在这是我的问题。我把 EXISTING 放在 Topcount 上,怎么理解发生了什么?
SELECT
{([Measures].[Reseller Sales Amount])} ON COLUMNS,
([Product].[Category].[Category].Members) *
Generate(
{[Product].[Category].[Category].Members},
EXISTING TopCount(
{[Product].[Product].[Product].Members},
5,
([Measures].[Reseller Sales Amount])
),
ALL
) ON ROWS
FROM [Step-by-Step]