MDX中的订单和限制结果
我正试图获得前5名产品的销售额为每个“城市”,按“销售”下降,但我的代码不能正常工作。 查询查找前5名产品,但不是每个产品的前5名,订单描述也不起作用。我用蒙德里安。有什么想法吗 具有 将[产品]设置为 头( 订单(筛选器([Product].[Product]。成员,非空([Measures].[Sales]),[Measures].[Sales],DESC) 5. ) 挑选 列上的非空{[Measures].[Sales]}, 行中的非空交叉连接([Markets].[City].成员,[PRODUCTS]) 从…起 [钢轮车轮]MDX中的订单和限制结果,mdx,mondrian,Mdx,Mondrian,我正试图获得前5名产品的销售额为每个“城市”,按“销售”下降,但我的代码不能正常工作。 查询查找前5名产品,但不是每个产品的前5名,订单描述也不起作用。我用蒙德里安。有什么想法吗 具有 将[产品]设置为 头( 订单(筛选器([Product].[Product]。成员,非空([Measures].[Sales]),[Measures].[Sales],DESC) 5. ) 挑选 列上的非空{[Measures].[Sales]}, 行中的非空交叉连接([Markets].[City].成员,[
下面是一个与您针对
AdvWrks
的情况类似的示例:
WITH
SET [AllCountries] AS [Country].[Country].MEMBERS
SET [AllStates] AS [State-Province].[State-Province].MEMBERS
SET [Top2States] AS
Generate
(
[AllCountries]
,TopCount
(
(EXISTING
[AllStates])
,3
,[Measures].[Internet Order Count]
)
)
MEMBER [State-Province].[All].[RestOfCountry] AS
Aggregate({(EXISTING {[AllStates]} - [Top2States])})
SELECT
{[Measures].[Internet Order Count]} ON COLUMNS
,{
[AllCountries]
*
{
[Top2States]
,[State-Province].[All].[RestOfCountry]
,[State-Province].[All]
}
} ON ROWS
FROM [Adventure Works];
它给出了以下结果:
因此,如果我尝试调整并简化上述内容,因为您不需要RestOf..
类别,我会得到如下结果:
WITH
SET [AllCities] AS [Markets].[City].MEMBERS
//SET [AllPRODUCTS] AS NONEMPTY([Product].[Product].MEMBERS, [Measures].[Sales])
//alternative if NonEmpty not implemented in Mondrian..
SET [AllPRODUCTS] AS
FILTER(
[Product].[Product].MEMBERS
,not isEmpty([Measures].[Sales])
)
SET [Top5PRODUCTS] AS
Generate
(
[AllCities]
,TopCount
(
(EXISTING
[AllPRODUCTS])
,5
,[Measures].[Sales]
)
)
SELECT
NON EMPTY
{[Measures].[Sales]} ON COLUMNS
,
[AllCities]
*[Top5PRODUCTS]
ON ROWS
FROM [SteelWheelsSales];
下面是一个与您针对
AdvWrks
的情况类似的示例:
WITH
SET [AllCountries] AS [Country].[Country].MEMBERS
SET [AllStates] AS [State-Province].[State-Province].MEMBERS
SET [Top2States] AS
Generate
(
[AllCountries]
,TopCount
(
(EXISTING
[AllStates])
,3
,[Measures].[Internet Order Count]
)
)
MEMBER [State-Province].[All].[RestOfCountry] AS
Aggregate({(EXISTING {[AllStates]} - [Top2States])})
SELECT
{[Measures].[Internet Order Count]} ON COLUMNS
,{
[AllCountries]
*
{
[Top2States]
,[State-Province].[All].[RestOfCountry]
,[State-Province].[All]
}
} ON ROWS
FROM [Adventure Works];
它给出了以下结果:
因此,如果我尝试调整并简化上述内容,因为您不需要RestOf..
类别,我会得到如下结果:
WITH
SET [AllCities] AS [Markets].[City].MEMBERS
//SET [AllPRODUCTS] AS NONEMPTY([Product].[Product].MEMBERS, [Measures].[Sales])
//alternative if NonEmpty not implemented in Mondrian..
SET [AllPRODUCTS] AS
FILTER(
[Product].[Product].MEMBERS
,not isEmpty([Measures].[Sales])
)
SET [Top5PRODUCTS] AS
Generate
(
[AllCities]
,TopCount
(
(EXISTING
[AllPRODUCTS])
,5
,[Measures].[Sales]
)
)
SELECT
NON EMPTY
{[Measures].[Sales]} ON COLUMNS
,
[AllCities]
*[Top5PRODUCTS]
ON ROWS
FROM [SteelWheelsSales];
非常感谢。不幸的是,这个脚本不适用于我的Pentaho-Saiku分析界面(使用mondrian 3模式)。错误为:MondrianException:Mondrian错误:第11行第11列标记“[AllPRODUCTS]”的语法错误似乎集合中不接受NONEMPTY()和EXISTING。我将其替换为FILTER()函数,然后[Top5PRODUCTS]集返回0行。@ElizaM是否在Mondrian中实现?此配方取决于其功能。现有配方未在mondrian for SETs中实现。“MondrianException:Mondrian错误:标记“[AllPRODUCTS]”第11列第17行的语法错误。”谢谢。不幸的是,这个脚本不适用于我的Pentaho-Saiku分析界面(使用mondrian 3模式)。错误为:MondrianException:Mondrian错误:第11行第11列标记“[AllPRODUCTS]”的语法错误似乎集合中不接受NONEMPTY()和EXISTING。我将其替换为FILTER()函数,然后[Top5PRODUCTS]集返回0行。@ElizaM是否在Mondrian中实现?此配方取决于其功能。现有配方未在mondrian for SETs中实现。“Mondrian例外:Mondrian错误:标记“[AllPRODUCTS]”第11列第17行的语法错误。“您在Mondrian中进行了工作
ORDER
吗?您在Mondrian中进行了工作ORDER
?