Sql server 给定日期范围的第一个非空值

Sql server 给定日期范围的第一个非空值,sql-server,ssas,mdx,olap,olap-cube,Sql Server,Ssas,Mdx,Olap,Olap Cube,我希望使用以下计算成员获取给定日期范围的第一个非空度量值: ( [Measures].[Total], Head ( Nonempty ( [Date].[Date].members ,[Measures].[Total] ) ).Item(0) ) 对于多维数据集中的所有日期,计算成员都可以正常工作,但是当我过滤查询并添加日期范围时,它仍然会获取所有日期的最后一个非空度量值,而不仅仅是所选日期。有什么克服这个问题的建议吗 尝试使用现有的强制上下文: (

我希望使用以下计算成员获取给定日期范围的第一个非空度量值:

(
 [Measures].[Total],
 Head
  (
   Nonempty
   ( [Date].[Date].members
    ,[Measures].[Total]
   )
  ).Item(0)
)

对于多维数据集中的所有日期,计算成员都可以正常工作,但是当我过滤查询并添加日期范围时,它仍然会获取所有日期的最后一个非空度量值,而不仅仅是所选日期。有什么克服这个问题的建议吗

尝试使用现有的
强制上下文:

(
 [Measures].[Total],
 Head
  (EXISTING
   Nonempty
   ( [Date].[Date].members
    ,[Measures].[Total]
   )
  ).Item(0)
)
另外,我认为您希望使用
TAIL
来获取数据的最后日期,而不是
HEAD
来获取集合中的第一个:

(
 [Measures].[Total],
 Tail
  (EXISTING
   Nonempty
   ( [Date].[Date].members
    ,[Measures].[Total]
   )
  ).Item(0)
)
要继续使用
Head
您需要先订购内部套件-
订购速度慢,因此最好避免:

(
 [Measures].[Total],
 Head
  (EXISTING
     ORDER(
       Nonempty
       ( [Date].[Date].members
        ,[Measures].[Total]
       )
     ,[Date].CURRENTMEMBER.MemberValue
     , BDESC
     )
  ).Item(0)
)

谢谢,它成功了,如果我想用head修改计算成员以获得第一个非空成员,该怎么办?我将用head的另一个选项编辑答案-怀疑您只需要订购内部集合