Mdx 某些属性的TOPCOUNT查询结果不正确
我试图找出哪一年是该州各省经销商销售额最高的一年。我正在使用AdventureWorksDW2008R2数据库 这是我得到的问题-Mdx 某些属性的TOPCOUNT查询结果不正确,mdx,adventureworks,ssas-2008-r2,Mdx,Adventureworks,Ssas 2008 R2,我试图找出哪一年是该州各省经销商销售额最高的一年。我正在使用AdventureWorksDW2008R2数据库 这是我得到的问题- SELECT { [Reseller Sales Amount] } ON COLUMNS, { Generate ( [Geography].[Geography].[Country].Members, TopCount ( Order ( Descendants ( [Geography].
SELECT { [Reseller Sales Amount] } ON COLUMNS,
{
Generate (
[Geography].[Geography].[Country].Members,
TopCount (
Order (
Descendants (
[Geography].[Geography].CurrentMember
, [Geography].[Geography].[State-Province]
)
*[Date].[Calendar].[Calendar Year].Members,
[Reseller Sales Amount],
DESC
),
1
)
)
} ON ROWS
FROM [Adventure Works]
在法国,它将(null)显示为结果集。还有,为什么它没有列出所有的州省份,而只是选择其中的几个?是否也有可能让国家与结果并驾齐驱。当我尝试另一个交叉连接时,我得到一个错误,说地理层次结构已经存在。要消除空值,可以使用
BDESC
而不是DESC
。额外的B
意味着所有自然的层次结构顺序都将被打破
SELECT { [Reseller Sales Amount] } ON COLUMNS,
{
Generate (
[Geography].[Geography].[Country].Members,
TopCount (
Order (
Descendants (
[Geography].[Geography].CurrentMember
, [Geography].[Geography].[State-Province]
)
*[Date].[Calendar].[Calendar Year].Members,
[Reseller Sales Amount],
BDESC //<<<
),
1
)
)
} ON ROWS
FROM [Adventure Works];
结果如下:
我们将探讨顶级过滤器在级别上的通用选项实现 可以为每个级别设置顶级规则 它用于数据的详细分析(展开、向下展开) 骨料基于顶部形成 只要数据按顺序排序,设置排序顺序就可以了 大多数数据透视表
SELECT
{ [Measures].[Reseller Sales Amount] }
DIMENSION PROPERTIES PARENT_UNIQUE_NAME , HIERARCHY_UNIQUE_NAME , CUSTOM_ROLLUP , UNARY_OPERATOR , KEY0 ON 0
, ORDER
( HIERARCHIZE
( HIERARCHIZE ( [Geography].[Geography].Levels ( 0 ).Members )
)
, ([Measures].[Reseller Sales Amount])
, BDESC
)
DIMENSION PROPERTIES PARENT_UNIQUE_NAME , HIERARCHY_UNIQUE_NAME , CUSTOM_ROLLUP , UNARY_OPERATOR , KEY0 ON 1
FROM
( SELECT
{ Generate
( [Geography].[Geography].Levels ( 3 ).Members
, TopCount
( Filter
( [Geography].[Geography].CurrentMember.Children
, NOT IsEmpty ( [Measures].[Reseller Sales Amount] )
)
, 3
, [Measures].[Reseller Sales Amount]
)
)
} ON COLUMNS
FROM
( SELECT
{ Generate
( [Geography].[Geography].Levels ( 2 ).Members
, TopCount
( Filter
( [Geography].[Geography].CurrentMember.Children
, NOT IsEmpty ( [Measures].[Reseller Sales Amount] )
)
, 3
, [Measures].[Reseller Sales Amount]
)
)
} ON COLUMNS
FROM
( SELECT
{ Generate
( [Geography].[Geography].Levels ( 1 ).Members
, TopCount
( Filter
( [Geography].[Geography].CurrentMember.Children
, NOT IsEmpty ( [Measures].[Reseller Sales Amount] )
)
, 3
, [Measures].[Reseller Sales Amount]
)
)
} ON COLUMNS
FROM
( SELECT
{ Generate
( [Geography].[Geography].Levels ( 0 ).Members
, TopCount
( Filter
( [Geography].[Geography].CurrentMember.Children
, NOT IsEmpty ( [Measures].[Reseller Sales Amount] )
)
, 3
, [Measures].[Reseller Sales Amount]
)
)
} ON COLUMNS
FROM
( SELECT
{ [Geography].[Geography].Levels ( 0 ).Members } ON COLUMNS
FROM [Adventure Works]
)
)
)
)
)
CELL PROPERTIES BACK_COLOR , CELL_ORDINAL , FORE_COLOR , FONT_NAME , FONT_SIZE , FONT_FLAGS , FORMAT_STRING , VALUE , FORMATTED_VALUE , UPDATEABLE , ACTION_TYPE
(上)使用一个我们都可以玩的立方体,提出了一个很好的问题。感谢whytheq给出了解释清楚的答案。我只是想知道是否不可能使用相同的用户层次结构并获得结果?事情是在我们拥有的多维数据集中,非用户定义的属性被隐藏了。我需要使用子多维数据集来查询吗?我对MDX不是很熟悉。@VKarthik在select子句中不能多次使用同一层次结构-这是MDX的规则。我在过去也遇到过类似的问题——我们的多维数据集设计者将属性层次结构隐藏起来,因为他认为它“更整洁”——现在它们被取消隐藏,并放置在每个维度内的文件夹“attributes”中,因为它们非常有用。在advwrk中,它们是可见的,因此microsoft建议的结构也是可见的。再次感谢您的更新。我还将取消隐藏属性。用户没有使用Subselect-为什么要这样过度复杂查询?查询非常简单。但在实际操作中,报表中使用了数据过滤器等,并且使用subselect很容易实现。我们几乎总是使用subselect。在本例中,可以使用透视表中的“顶层”进行导航。
SELECT
{ [Measures].[Reseller Sales Amount] }
DIMENSION PROPERTIES PARENT_UNIQUE_NAME , HIERARCHY_UNIQUE_NAME , CUSTOM_ROLLUP , UNARY_OPERATOR , KEY0 ON 0
, ORDER
( HIERARCHIZE
( HIERARCHIZE ( [Geography].[Geography].Levels ( 0 ).Members )
)
, ([Measures].[Reseller Sales Amount])
, BDESC
)
DIMENSION PROPERTIES PARENT_UNIQUE_NAME , HIERARCHY_UNIQUE_NAME , CUSTOM_ROLLUP , UNARY_OPERATOR , KEY0 ON 1
FROM
( SELECT
{ Generate
( [Geography].[Geography].Levels ( 3 ).Members
, TopCount
( Filter
( [Geography].[Geography].CurrentMember.Children
, NOT IsEmpty ( [Measures].[Reseller Sales Amount] )
)
, 3
, [Measures].[Reseller Sales Amount]
)
)
} ON COLUMNS
FROM
( SELECT
{ Generate
( [Geography].[Geography].Levels ( 2 ).Members
, TopCount
( Filter
( [Geography].[Geography].CurrentMember.Children
, NOT IsEmpty ( [Measures].[Reseller Sales Amount] )
)
, 3
, [Measures].[Reseller Sales Amount]
)
)
} ON COLUMNS
FROM
( SELECT
{ Generate
( [Geography].[Geography].Levels ( 1 ).Members
, TopCount
( Filter
( [Geography].[Geography].CurrentMember.Children
, NOT IsEmpty ( [Measures].[Reseller Sales Amount] )
)
, 3
, [Measures].[Reseller Sales Amount]
)
)
} ON COLUMNS
FROM
( SELECT
{ Generate
( [Geography].[Geography].Levels ( 0 ).Members
, TopCount
( Filter
( [Geography].[Geography].CurrentMember.Children
, NOT IsEmpty ( [Measures].[Reseller Sales Amount] )
)
, 3
, [Measures].[Reseller Sales Amount]
)
)
} ON COLUMNS
FROM
( SELECT
{ [Geography].[Geography].Levels ( 0 ).Members } ON COLUMNS
FROM [Adventure Works]
)
)
)
)
)
CELL PROPERTIES BACK_COLOR , CELL_ORDINAL , FORE_COLOR , FONT_NAME , FONT_SIZE , FONT_FLAGS , FORMAT_STRING , VALUE , FORMATTED_VALUE , UPDATEABLE , ACTION_TYPE