如何使用MDX查询获取最大值

时间:2014-12-04 10:02:40

标签: sql sql-server-2008 ssas mdx cube

我正在尝试获取Dimension表的最大值,其中数据与Fact表

一起引用
WITH 
  MEMBER [Measures].[Max key] AS 
    Max
    (
      [DimAnchorDate].[Date Key].MEMBERS
     ,[DimAnchorDate].[Date Key].CurrentMember.Member_Key
    ) 
SELECT 
  {
    [Measures].[Max key]
  } ON COLUMNS
FROM X;

此查询为我提供输出:20141231 在FactTable中我们有到20141031的数据。从上面的查询我想得到20141031

enter image description here

所以现在我试图从DimAnchordate表获得最大值,就像它在FactPatientDr表中那样(即20141031)。所以请建议我实现这个目标的最佳方法......

2 个答案:

答案 0 :(得分:1)

我认为目前您正在查看多维数据集空间某些部分为空的日期 - 尝试使用nonempty

中的度量强制FactPatientDr
WITH 
  MEMBER [Measures].[Max key] AS 
    Max
    (
      nonempty(
        [DimAnchorDate].[Date Key].MEMBERS
        ,[Measures].[SomeMeasureInFactPatientDr]
      )
     ,[DimAnchorDate].[Date Key].CurrentMember.Member_Key
    ) 
SELECT 
  {
    [Measures].[Max key]
  } ON COLUMNS
FROM X;

答案 1 :(得分:0)

我认为我们可以使用Tail函数来获得具有度量值的所需结果:

select non empty([Measures].[Entered Case],
    tail  
   (Order   
      ([Calendar].[Date].[Date].members  
         ,[Measures].[Entered Case]
         ,basc
      )  
   ,1
   ))   on 0 from [SolutionPartner]