如何将 MDX 查询中的行的集合转换为单个值?

Posted

技术标签:

【中文标题】如何将 MDX 查询中的行的集合转换为单个值?【英文标题】:How to convert set to single value for rows in MDX Query? 【发布时间】:2016-02-29 17:42:41 【问题描述】:

我有以下查询正在产生如图所示的输出。

WITH 
SET ConsignmentYear as 
    (
      [Period].[YearAndMonth].[ConsignmentMonth].ALLMEMBERS 
     *[Period].[YearAndQuarter[ConsignmentYear].ALLMEMBERS 
    )
SELECT 
  NON EMPTY 
    
     [Measures].[Amount] 
   , [Measures].[LDM]
   , [Measures].[Weight]
   , [Measures].[CBM] 
    ON COLUMNS,
 NON EMPTY 
    (ConsignmentYear) ON ROWS 
 FROM [RebellOlap] 

虽然我需要将 Row 维度上的集合作为日期(例如 1-2014、2-2014、3-2014、12-2014),而不是分别包含两个值的集合。

因为,每一行对应一个日期 所以我最终需要

Year        Amount    LDM      Weight       CBM

1-2014----> 2.64       0        191.4        0
2-2014----> 2.64       0        191.4        0
4-2014----> 2.64       0        191.4        0
1-2015----> 2.64       0        191.4        0
...........................................

我怎样才能做到这一点?

【问题讨论】:

这些对您没有帮助吗? ***.com/questions/35649145/… 【参考方案1】:

我会使用度量:

WITH 
MEMBER [Measures].[concatenated] AS
      [Date].[Month of Year].CurrentMember.Member_Caption + ' - '
    + 
      [Date].[Calendar Year].CurrentMember.Member_Caption 
SELECT 
  [Measures].[concatenated] ON 0
 ,
    [Date].[Month of Year].[Month of Year]*
    [Date].[Calendar Year].[Calendar Year] ON 1
FROM [Adventure Works];

以上结果:

或者更改您的日期维度,以便连接的日期在日期维度中是它自己的层次结构

【讨论】:

以上是关于如何将 MDX 查询中的行的集合转换为单个值?的主要内容,如果未能解决你的问题,请参考以下文章

如何将具有排名值的列转换为oracle中的行

如何将带有子选择的 SQL 查询转换为 MDX 查询?

如何将逗号分隔值转换为oracle中的行?

如何将列值转换为vba宏中的行

将多个值字段拆分为数据库中的行的理想方法?

如何在xamarin中删除集合视图中的一个单元格和sqlite中的行的删除按钮?