乘以度量的 MDX ORDER
MDX ORDER by multiply measures
假设我有下一个 MDX 查询
select
{
[Measures].[Measure1],
[Measures].[Measure2],
} on columns,
{
ORDER([Dim].Children, [Measures].[Measure1], desc)
} on rows
from [Cube]
选择两个度量并按第一个对行进行排序。
如何按两个度量排序,先按Measure1排序,然后按Measure2排序?
试试这个:
select
{
[Measures].[Measure1],
[Measures].[Measure2]
} on columns,
{
ORDER(ORDER([Dim].Children, [Measures].[Measure1], desc), [Measures].[Measure2], DESC)
} on rows
from [Cube]
编辑: 它不起作用的原因是因为需要更改措施的顺序。以下是我认为会发生的情况:
控件首先转到内部集合,并按内部度量排序。然后返回的这个集合按外部度量排序。总体效果是外部度量取代了内部度量排序。因此,如果我们想按 m1->m2 排序,则 m1 需要是外部度量,m2 是内部度量。
这对我来说适用于 AdvWrks:
SELECT
{
[Measures].[Reseller Order Quantity]
,[Measures].[Reseller Sales Amount]
} ON 0
,Order
(
Order
(
[Product].[Product].[Product].MEMBERS
,[Measures].[Reseller Sales Amount]
,BDESC
)
,[Measures].[Reseller Order Quantity]
,BDESC
) ON 1
FROM [Adventure Works];
也许您需要调换顺序并使用 BDESC
:
SELECT
{
[Measures].[Measure1]
,[Measures].[Measure2]
} ON COLUMNS
,{
Order
(
Order
(
[Dim].Children
,[Measures].[Measure2]
,BDESC
)
,[Measures].[Measure1]
,BDESC
)
} ON ROWS
FROM [Cube];
假设我有下一个 MDX 查询
select
{
[Measures].[Measure1],
[Measures].[Measure2],
} on columns,
{
ORDER([Dim].Children, [Measures].[Measure1], desc)
} on rows
from [Cube]
选择两个度量并按第一个对行进行排序。 如何按两个度量排序,先按Measure1排序,然后按Measure2排序?
试试这个:
select
{
[Measures].[Measure1],
[Measures].[Measure2]
} on columns,
{
ORDER(ORDER([Dim].Children, [Measures].[Measure1], desc), [Measures].[Measure2], DESC)
} on rows
from [Cube]
编辑: 它不起作用的原因是因为需要更改措施的顺序。以下是我认为会发生的情况:
控件首先转到内部集合,并按内部度量排序。然后返回的这个集合按外部度量排序。总体效果是外部度量取代了内部度量排序。因此,如果我们想按 m1->m2 排序,则 m1 需要是外部度量,m2 是内部度量。
这对我来说适用于 AdvWrks:
SELECT
{
[Measures].[Reseller Order Quantity]
,[Measures].[Reseller Sales Amount]
} ON 0
,Order
(
Order
(
[Product].[Product].[Product].MEMBERS
,[Measures].[Reseller Sales Amount]
,BDESC
)
,[Measures].[Reseller Order Quantity]
,BDESC
) ON 1
FROM [Adventure Works];
也许您需要调换顺序并使用 BDESC
:
SELECT
{
[Measures].[Measure1]
,[Measures].[Measure2]
} ON COLUMNS
,{
Order
(
Order
(
[Dim].Children
,[Measures].[Measure2]
,BDESC
)
,[Measures].[Measure1]
,BDESC
)
} ON ROWS
FROM [Cube];