Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MDX:avg高级使用_Mdx_Average - Fatal编程技术网

MDX:avg高级使用

MDX:avg高级使用,mdx,average,Mdx,Average,我对一个问题的基本MDX知识已经到了极限,如果有人有想法,欢迎提供一切帮助 形势 这是我想处理的层次结构。在我的事实表中,我有一个[衡量][销售]指标 [All Management].[TemplateMgt].[CityMgt].[DistricMgt].[StoreMgt] [All Management].[TMP-00.002].[London].[DistricMgt].[Shoe001] [All Management].[TMP-00.002].[London].[Distri

我对一个问题的基本MDX知识已经到了极限,如果有人有想法,欢迎提供一切帮助

形势

这是我想处理的层次结构。在我的事实表中,我有一个[衡量][销售]指标

[All Management].[TemplateMgt].[CityMgt].[DistricMgt].[StoreMgt]

[All Management].[TMP-00.002].[London].[DistricMgt].[Shoe001]
[All Management].[TMP-00.002].[London].[DistricMgt].[Hat001]
[All Management].[TMP-00.002].[London].[DistricMgt].[Electronic001]
[All Management].[TMP-00.002].[Paris].[DistricMgt].[Shoe001]
[All Management].[TMP-00.002].[Paris].[DistricMgt].[Hat001]
[All Management].[TMP-00.002].[Paris].[DistricMgt].[Electronic001]
[All Management].[TMP-00.002].[Madrid].[DistricMgt].[Shoe001]
[All Management].[TMP-00.002].[Madrid].[DistricMgt].[Hat001]
[All Management].[TMP-00.002].[Madrid].[DistricMgt].[Electronic001]
问题

对于给定的CityMgt,我希望有三个值

[Measures].[Cur]:StoreMgt在给定城市的销售额Mgt(因此,对于马德里,获取值[Shoe001]、[Hat001]、[Electronic001])

[衡量标准].[Avg]:具有相同模板的StoreMgt集团的平均销售额([London].[Shoe001]+[Paris].[Shoe001]+[Madrid].[Shoe001])

[Measures].[Max]:具有相同模板的StroreMgt Max的最大销售额([London].[Shoe001],[Paris].[Shoe001],[Madrid].[Shoe001])

换句话说,我希望有一个具有这种结构的输出

  Shoe001    |  Hat001     |  Electronic001
 ----------------------------------------------------
 CUR|AVG|MAX | CUR|AVG|MAX  | CUR|AVG|MAX
 ----------------------------------------------------
到目前为止我得到了什么

WITH  MEMBER [Measures].[Cur] AS (...)
          MEMBER [Measures].[Avg] AS (...)
          MEMBER [Measures].[Max] AS (...)

SELECT {[Measures].[Cur], [Measures].[Avg], [Measures].[Max]} ON COLUMNS,
{FILTER({DESCENDANTS([All Management].CurrentMember, [StoreMgt])}, [All Management].Parent.Parent = "Madrid" } ON ROWS
from [MyCube]
我的问题是,我不知道在成员属性Cur/Avg/Max中放什么,这样我的数据就可以按StoreMgt(一种groupby)处理

如果有人能启发我,我将不胜感激


诚恳地说,

为了获得平均值,您可以定义新的层次结构(如果您使用SSAS,则为属性)。一个用于国家,另一个用于产品类型。一旦你得到了它们,统计计算就成了玩currentmember和[All]的问题

您可以选择另一个版本->总和(过滤器(…成员,条件),值)。。。这可能很慢,真的很慢


一般来说,对于这种计算,您可以使用我们称之为统计维度或效用维度()。

我不完全确定以下查询是否有效,希望它能传达这一想法

WITH MEMBER [All Management].[Sales_AVG] AS AVG({[All Management].Members},                           
                                                       [Measures].currentMember)
     MEMBER [All Management].[Sales_MAX] AS MAX({[All Management].Members},        
                                                        [Measure].currentMember)
SELECT {[Measures].[Sales]} ON COLUMNS,
       {[All Management].Members, [All Management].[Sales_AVG], 
         [All Management].[sales_Max]} ON ROWS FROM [MYCUBE] WHERE
       {DESCENDANTS([All Management].CurrentMember, [StoreMgt])}