Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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:Sum,忽略名称重复的成员_Mdx_Iccube_Iccube Reporting - Fatal编程技术网

MDX:Sum,忽略名称重复的成员

MDX:Sum,忽略名称重复的成员,mdx,iccube,iccube-reporting,Mdx,Iccube,Iccube Reporting,我试图求一个类别及其子类别中所有产品的销售额之和,只需将具有相同产品维度键的产品的销售额相加一次 每个类别可以有任意数量的子类别,每个子类别可以有自己的任意数量的子类别,最多五个级别的子类别。子类别的数量可能有所不同。 因此category\u维度中的category\u层次结构具有以下级别: main\u category,sub\u category\u 1,sub\u category\u 2,…,sub\u category\u 5 可能是这样的: id main_category

我试图求一个类别及其子类别中所有产品的销售额之和,只需将具有相同产品维度键的产品的销售额相加一次

每个类别可以有任意数量的子类别,每个子类别可以有自己的任意数量的子类别,最多五个级别的子类别。子类别的数量可能有所不同。
因此
category\u维度
中的
category\u层次结构
具有以下级别:

main\u category
sub\u category\u 1
sub\u category\u 2
,…,
sub\u category\u 5

可能是这样的:

id    main_category     sub_category_1    sub_category_2     sub_category_3   ...
1     Electronics
2     Electronics       Camera & Photo
3     Electronics       Camera & Photo    Accessories
4     Electronics       Camera & Photo    Digital Cameras
5     Electronics       Camera & Photo    Film Photography   Film Cameras
6     Electronics       Camera & Photo    Film Photography   Film
7     Electronics       Headphones
8     Home & Kitchen
...
在事实表中,每天每个类别的每个产品都有销售编号,每个产品可以属于多个类别(如果一个产品属于多个类别,则在每个类别中都有相同的销售编号),例如:

如果我现在运行一个简单的MDX查询来显示每个类别的销售数量,那么如果产品属于多个类别,它会将销售数量相加多次:

SELECT 
  {[DATE_DIMENSION].[DATE_HIERARCHY].ALLMEMBERS} ON COLUMNS
 ,NON EMPTY 
      {[CATEGORY_DIMENSION].[CATEGORY_HIERARCHY].ALLMEMBERS}
    * 
      {[PRODUCT_DIMENSION].[PRODUCT_HIERARCHY].ALLMEMBERS} ON ROWS
FROM [Cube]
WHERE [MEASURES].[SALES];
返回

                                             2016-06-30  2016-06-29  ...
CATEGORY                    PRODUCT_ID       SALES       SALES
All Categories              All Products     22          ...
                              1              12
                              2              10
  Electronics               All Products     22
                              1              12
                              2              10
    Camera & Photo          All Products     18
                              1               8
                              2              10
       Digital Cameras      All Products      5
                              2               5
       Film Photography     All Products      4
                              1               4
         Film               All Products      4
                              1               4
我希望在2016年6月30日,产品1的销售额为4,产品2的销售额为5(但仍然能够按周/月/年汇总销售额):


这还没有完成或测试-这只是最初的想法:一旦我有权访问它,我需要针对AdvWrks进行测试

调整所有成员以满足您的需求是相当复杂的

WITH 
SET [All_tuples] AS
    ORDER(
      {[CATEGORY_DIMENSION].[CATEGORY_HIERARCHY].[CATEGORY_HIERARCHY].MEMBERS}
    * {[PRODUCT_DIMENSION].[PRODUCT_HIERARCHY].MEMBERS}
    , [PRODUCT_DIMENSION].CURRENTMEMBER.MEMBER_CAPTION
    , BDESC
    )
SET [NoDupes] AS
  FILTER(
     [All_tuples] AS X,
     X.CURRENT.ITEM(1) NOT IS X.CURRENT.LAG(1).ITEM(1)
  )
MEMBER [CATEGORY_DIMENSION].[CATEGORY_HIERARCHY].[All].[Category I NEW] AS
  AGGREGATE(
    [NoDupes]
  ) 
SELECT 
  {[Measures].[Sales]} ON COLUMNS
 ,NON EMPTY 
   [CATEGORY_DIMENSION].[CATEGORY_HIERARCHY].[All].[Category I NEW] ON ROWS
FROM [Cube];

这还没有完成或测试-这只是最初的想法:一旦我有权访问它,我需要针对AdvWrks进行测试

调整所有成员以满足您的需求是相当复杂的

WITH 
SET [All_tuples] AS
    ORDER(
      {[CATEGORY_DIMENSION].[CATEGORY_HIERARCHY].[CATEGORY_HIERARCHY].MEMBERS}
    * {[PRODUCT_DIMENSION].[PRODUCT_HIERARCHY].MEMBERS}
    , [PRODUCT_DIMENSION].CURRENTMEMBER.MEMBER_CAPTION
    , BDESC
    )
SET [NoDupes] AS
  FILTER(
     [All_tuples] AS X,
     X.CURRENT.ITEM(1) NOT IS X.CURRENT.LAG(1).ITEM(1)
  )
MEMBER [CATEGORY_DIMENSION].[CATEGORY_HIERARCHY].[All].[Category I NEW] AS
  AGGREGATE(
    [NoDupes]
  ) 
SELECT 
  {[Measures].[Sales]} ON COLUMNS
 ,NON EMPTY 
   [CATEGORY_DIMENSION].[CATEGORY_HIERARCHY].[All].[Category I NEW] ON ROWS
FROM [Cube];

如果(产品A/子类别1)的销售额=5和(产品A/子类别2)=3怎么办?如果(产品A/子类别1)的销售额始终=(产品A/子类别2)编辑了问题以澄清类别结构。如果(产品A/子类别1)的销售额=5和(产品A/子类别2)=3怎么办?如果(产品A/子类别1)的销售额始终=(产品a/子类别2)编辑了问题以澄清类别结构。这将返回语法错误。另外,添加新的主类别成员也不会有帮助,因为a)主类别的数量不是固定的,可能会随时间而变化;b)问题可能已经在子类别级别发生。我扩展了我原来的问题以澄清类别结构。这返回了一个语法错误。另外,添加一个新的主类别成员也不会有帮助,因为a)主类别的数量不是固定的,可能会随时间而变化;b)问题可能已经在子类别级别发生。我扩展了我原来的问题,以澄清类别结构。
WITH 
SET [All_tuples] AS
    ORDER(
      {[CATEGORY_DIMENSION].[CATEGORY_HIERARCHY].[CATEGORY_HIERARCHY].MEMBERS}
    * {[PRODUCT_DIMENSION].[PRODUCT_HIERARCHY].MEMBERS}
    , [PRODUCT_DIMENSION].CURRENTMEMBER.MEMBER_CAPTION
    , BDESC
    )
SET [NoDupes] AS
  FILTER(
     [All_tuples] AS X,
     X.CURRENT.ITEM(1) NOT IS X.CURRENT.LAG(1).ITEM(1)
  )
MEMBER [CATEGORY_DIMENSION].[CATEGORY_HIERARCHY].[All].[Category I NEW] AS
  AGGREGATE(
    [NoDupes]
  ) 
SELECT 
  {[Measures].[Sales]} ON COLUMNS
 ,NON EMPTY 
   [CATEGORY_DIMENSION].[CATEGORY_HIERARCHY].[All].[Category I NEW] ON ROWS
FROM [Cube];