【问题标题】:MDX: how to collapse multiple values in a dimention into one?MDX:如何将一个维度中的多个值合并为一个?
【发布时间】:2013-03-19 20:39:36
【问题描述】:

我正在基于 OLAP 多维数据集构建一个 SSRS 报告,该多维数据集按货币分解数据。货币进入列。不同之处在于用户只想查看几种主要货币(如美元、欧元、日元),并将其他所有货币组合到“其他”列中。

实际上,我需要将整个货币世界分解为美元、欧元、日元和其他货币。实现它的最佳方法是什么?我觉得这应该是可行的,但我找不到谷歌搜索的正确关键字。

【问题讨论】:

  • 您是单独处理货币转换的问题吗?也就是说,您使用的度量是标准化的,因此您可以安全地汇总“其他”列中的值,并且不会将不同的货币值加在一起?或者您对如何进行货币转换有疑问?
  • 不,没有货币转换,这些值应该是标准化的。另一方面,仔细检查一下我没有将俄罗斯卢布添加到巴西雷亚尔中并没有什么坏处。 :)

标签: reporting-services mdx olap


【解决方案1】:

假设您有一个可以安全地组合到“其他”组中的度量,您可以通过创建一组“主要”成员和一个新的“其他”成员来组合多个成员,该成员是所有成员的聚合删除了“主要”。

这是一个针对 Adventure Works 的示例:

WITH 
    SET [Major] AS {
        [Source Currency].[Source Currency Code].&[100], 
        [Source Currency].[Source Currency Code].&[19],
        [Source Currency].[Source Currency Code].&[98]
        }
    MEMBER [Source Currency].[Source Currency Code].[Other] AS 
        Aggregate(Except([Source Currency].[Source Currency Code].[Source Currency Code], [Major]))
SELECT
    {[Major], [Other]} ON 0,
    [Customer].[Customer Geography].[Country] ON 1
FROM [Adventure Works]
WHERE [Measures].[Internet Sales Amount]

结果:

                          USD            CAD            GBP          Other
Australia           $9,012.50         (null)         (null)  $9,051,988.08 
Canada            $172,181.96  $1,805,662.90         (null)         (null)
France          $2,462,361.69         (null)      $1,084.33    $180,571.69 
Germany         $2,656,527.35         (null)         (null)    $237,784.99 
United Kingdom      $4,446.85         (null)  $3,387,265.36         (null)
United States   $9,388,934.97        $854.54         (null)         (null)

【讨论】:

  • 谢谢!这正是我所需要的。以防万一,原来的查询有一个交叉连接,所以不是 {[Major], [Other]} ON 1 我必须做 { dimension1.ALLMEMBERS * dimension2.ALLMEMBERS * ([Major] + [Other]) }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 1970-01-01
  • 2020-11-03
相关资源
最近更新 更多