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的另一个选项编辑答案-怀疑您只需要订购内部集合