我们在[产品]的COLUMNS和CROSSJOIN上有一个表格[折扣金额]。[产品类别]和[地理]。[地理]在ROWS轴上。
我们使用ORDER函数按[折扣金额]对实体进行排序,选项为" BDESC"。
MDX:
SELECT
NON EMPTY
{[Measures].[Discount Amount]} ON COLUMNS
,NON EMPTY
Order
(
{
Hierarchize
(
{
CrossJoin
(
{
Hierarchize
(
{
[Product].[Product Categories].[All Products]
,[Product].[Product Categories].[All Products].Children
}
)
}
,{Hierarchize({[Geography].[Geography].[All Geographies]})}
)
}
)
}
,[Measures].[Discount Amount]
,BDESC
) ON ROWS
FROM [Adventure Works];
表格看起来不错,并按我们的意愿显示信息。
然后我们要扩展实体[服装]的[所有类别]元素。为此,我们需要做出一些改变:
新MDX:
SELECT
NON EMPTY
{[Measures].[Discount Amount]} ON COLUMNS
,NON EMPTY
{
Order
(
{
Hierarchize
(
{
CrossJoin
(
{
Except
(
{
Hierarchize
(
{
[Product].[Product Categories].[All Products]
,[Product].[Product Categories].[All Products].Children
}
)
}
,{[Product].[Product Categories].[Category].&[3]}
)
}
,{Hierarchize({[Geography].[Geography].[All Geographies]})}
)
}
)
,CrossJoin
(
{[Product].[Product Categories].[Category].&[3]}
,{
Hierarchize
(
{
[Geography].[Geography].[All Geographies]
,[Geography].[Geography].[All Geographies].Children
}
)
}
)
}
,[Measures].[Discount Amount]
,BDESC
)
} ON ROWS
FROM [Adventure Works];
和SQL Server Management Studio中的结果表:
正如您所看到的,[服装]实体的所有孩子都失去了他们的等级,并在表格中显示为单独的实体。
但我们希望这些元素属于[服装]的[所有地理位置]。
如果我们尝试将排序类型更改为" DESC" (分层)然后儿童正确显示,但在表格中排序不起作用:
因此,我们正在寻找解决方案如何在这些表中进行工作排序和扩展。
谢谢。
答案 0 :(得分:0)
你走了 - 我拿出了很多Hierarchize
的实例来试图看到树木的木材。我没有使用度量来订购,而是使用了添加[Product].[Product Categories].[Product Categories]
:
SELECT
NON EMPTY
{[Measures].[Discount Amount]} ON COLUMNS
,NON EMPTY
{
Order
(
{
Except
(
{
[Product].[Product Categories].[All Products]
,[Product].[Product Categories].[All Products].Children
}
,[Product].[Product Categories].[Category].&[3]
)
*
[Geography].[Geography].[All Geographies]
,
[Product].[Product Categories].[Category].&[3]
*
{
[Geography].[Geography].[All Geographies]
,[Geography].[Geography].[All Geographies].Children
}
}
,([Measures].[Discount Amount],[Product].[Product Categories].[Product Categories])
,BDESC
)
} ON ROWS
FROM [Adventure Works];