Mdx 查询显示除今年之外的所有年份的年份级别数据

标签 mdx

SELECT 
  NON EMPTY 
    {[Measures].[AMOUNTCUR]} ON 0
 ,NON EMPTY 
    {
      NULL : [PRX_UE_DATE].[Calender].[Year].&[2015]
     ,[PRX_UE_DATE].[Calender].[Year].&[2017]
     ,Descendants
      (
        [PRX_UE_DATE].[Calender].[Year].&[2016]
       ,[PRX_UE_DATE].[Calender].[Month]
      )
    } ON 1
FROM [PRX_SalesDataModel];

我有一个像上面这样的查询。它正在工作,它根据月份返回 2016 年,其他年份则根据年份返回。

现在我必须在这个 mdx 上添加更多维度,但是当我尝试它时

SELECT 
  NON EMPTY 
    {[Measures].[AMOUNTCUR]} ON 0
 ,NON EMPTY 
    {
      NULL : [PRX_UE_DATE].[Calender].[Year].&[2015]
     ,[PRX_UE_DATE].[Calender].[Year].&[2017]
     ,
        Descendants
        (
          [PRX_UE_DATE].[Calender].[Year].&[2016]
         ,[PRX_UE_DATE].[Calender].[Month]
        )
      * 
        [PRX UE CLIENT].[SEGMENTID].ALLMEMBERS
    } ON 1
FROM [PRX_SalesDataModel];

我收到错误成员、元组或集合必须在函数中使用相同的层次结构。

最佳答案

您只需将所有日期维度内容保留在大括号中 {...}:

SELECT 
  NON EMPTY 
    {[Measures].[AMOUNTCUR]} ON 0
 ,NON EMPTY 
    {
      NULL : [PRX_UE_DATE].[Calender].[Year].&[2015]
     ,[PRX_UE_DATE].[Calender].[Year].&[2017]
     ,
        Descendants
        (
          [PRX_UE_DATE].[Calender].[Year].&[2016]
         ,[PRX_UE_DATE].[Calender].[Month]
        ) 
     }
     * [PRX UE CLIENT].[SEGMENTID].ALLMEMBERS
     ON 1
FROM [PRX_SalesDataModel];

您甚至可以通过WITH子句将日期内容移动到命名集中,使其更具可读性:

WITH SET [DatesSet] AS
    {
      NULL : [PRX_UE_DATE].[Calender].[Year].&[2015]
     ,[PRX_UE_DATE].[Calender].[Year].&[2017]
     ,
        Descendants
        (
          [PRX_UE_DATE].[Calender].[Year].&[2016]
         ,[PRX_UE_DATE].[Calender].[Month]
        ) 
     }
SELECT 
  NON EMPTY 
    {[Measures].[AMOUNTCUR]} ON 0
 ,NON EMPTY 
    [DatesSet]
     * [PRX UE CLIENT].[SEGMENTID].ALLMEMBERS
     ON 1
FROM [PRX_SalesDataModel];

关于Mdx 查询显示除今年之外的所有年份的年份级别数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37666991/

相关文章:

sql-server - 设计维度层次结构: Natural or Unnatural

sql - MDX - 多个 Where 和/或过滤条件

postgresql - 如何对 PostgreSQL 数据库运行 MDX 查询?

ssas - 为什么 Order 会忽略 subselect?

ssas - 如果当前成员有子级,则展开用户层次结构 - MDX

ssas - MDX - 需要 3rd + 维度示例

sql-server - 有什么方法可以在浏览 SSAS 立方体时控制小数位数吗?

excel - 对 Analysis Services 的 VBA Repitive MDX 查询

postgresql - OLAP/MDX - 定义计算成员,对所有时间数据求和

MDX查询SUM PROD做加权平均