如何在MDX中使用大于日期的层次结构

时间:2018-01-18 18:23:33

标签: ssas mdx cube mdx-query

我是MDX新手,我正在尝试将日期过滤器应用于日期层次结构,即我希望计算每个产品编号的所有销售额,不包括NA,日期大于2016年1月1日。

立即写我正在使用以下查询:

 SELECT NON EMPTY { [Measures].[SALES COUNT] } ON COLUMNS
 , NON EMPTY { ([PRODUCT CRIETERIA].[PRODUCT NUMBER].[PRODUCT NUMBER].ALLMEMBERS ) } 
 DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
 FROM 
 ( 
 SELECT 
 ( -{ [PRODUCT CRIETERIA].[PRODUCT NUMBER].&[NA] } ) ON COLUMNS 
 FROM 
 ( 
 SELECT 
 ( 
 { 
 [PRODUCT Creation Date].[PRODUCT Creation Date Hierarchy].[PRODUCT Creation Year].&[2016], 
 [PRODUCT Creation Date].[PRODUCT Creation Date Hierarchy].[PRODUCT Creation Year].&[2017] 
 } 
 ) 
 ON COLUMNS FROM [Product_QA])) 
 WHERE ( [PRODUCT Creation Date].[PRODUCT Creation Date Hierarchy].CurrentMember ) 
 CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

但上面的查询工作正常,但不正确,因为我必须每年手动更改此查询。     我希望结果日期> 2016年1月1日     我怎样才能使用比这更大的结果来获得理想的结果。

感谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案 - 通常在使用日期维度时,任一侧的NULL冒号范围运算符都会给出一侧打开的范围,例如: 2016年及以上

[PRODUCT Creation Date].[PRODUCT Creation Date Hierarchy].[PRODUCT Creation Year].&[2016] 
: NULL

直到2016年:

NULL:
[PRODUCT Creation Date].[PRODUCT Creation Date Hierarchy].[PRODUCT Creation Year].&[2016]