mdx周期的第一个值

mdx周期的第一个值,mdx,mondrian,Mdx,Mondrian,我有一个带有“销售”度量的立方体,其中我们有每天售出的单位数量。我们有一个“年>周>日”的时间维度 我需要计算字段的非空销售额期间的第一天和最后一天的销售额。我试过使用OPENINGPERIOD和CLOSINGPERIOD,但它们只在周一和周日返回一周时间。。。问题是,有时周一是假日,周日总是假日,我得到的数据是空的,我们在假日没有销售。。。以下是我在某个时段最后一天的示例: WITH MEMBER [Measures].[sales end] AS '((CLOSIN

我有一个带有“销售”度量的立方体,其中我们有每天售出的单位数量。我们有一个“年>周>日”的时间维度

我需要计算字段的非空销售额期间的第一天和最后一天的销售额。我试过使用OPENINGPERIOD和CLOSINGPERIOD,但它们只在周一和周日返回一周时间。。。问题是,有时周一是假日,周日总是假日,我得到的数据是空的,我们在假日没有销售。。。以下是我在某个时段最后一天的示例:

WITH
  MEMBER 
   [Measures].[sales end] AS 
      '((CLOSINGPERIOD([Time.Weeks].[Day],[Time.Weeks].CurrentMember)
       , [Measures].[sales]))'
SELECT 
    {[Measures].[sales], [Measures].[sales end]} ON COLUMNS, 
 NON EMPTY 
   ({[Time.Weeks].[Week].Members}) ON ROWS 
FROM [cubSales]

我需要得到最后一天的非空销售在此期间。。。应该是星期五,但如果星期五是假日,应该是星期四。。。我的意思是,一周中的最后一天有一个衡量销售额的值。

一个简单的解决办法就是从你的时间维度中省略假日。

蒙德里安没有假日的概念。我将使用内置的假期列表实现自己的MDX功能。这是一种灵活的方法,可以扩展以支持不同国家/地区的不同假日。

在我们的多维数据集上进行了测试,似乎可以正常工作,只是没有说明任何假日

SELECT 
  {
    [Measures].[sales]
  } ON COLUMNS
 ,NON EMPTY 
    Generate
    (
      [Time.Weeks].MEMBERS
     ,Tail
      (
        NonEmpty
        (
          [Time.Weeks].CurrentMember * [Time.Weeks].[Day].MEMBERS //<<I think .members is generally default but should do the same thing if we are explicit
         ,[Measures].[sales]
        )
      )
    ) ON ROWS
FROM [cubSales];

谢谢这是不可能的,因为我们有几个商店,一天只能是一个子集的假日,而不能是其余的。嗨,Luc,我真正要找的是一个时期的第一天和最后一天,销售指标的值为NOTNULL,所以我们可以检查假日日历,或者只查找那个NOTNULL值。我想你说的是定制函数关闭周期。。。为此,我需要[Time.Weeks].CurrentMember和销售指标。。。但我不知道如何获取这些天的度量值。。。你能给我一些初步的建议吗?嗨,谢谢!我使用的是Pentaho 5.1,当我试图在JPivot中执行您的查询时,我得到:Mondrian错误:没有函数匹配签名“*”。您是否也在使用Pentaho 5.1??可能是什么问题?不确定-我已经在SQLServerManagementStudio中针对AdventureWorks测试了上述内容,因此它是有效的MDX。我猜你需要把这个翻译成蒙德里安的方言。我们使用Pyramid,但我不涉及它的MDX的特殊风格:目前我在SQL存储过程中使用标准MDX,使用T-SQL函数OPENQUERY。尽管尝试在[Day]之后添加.members,但我已经编辑了答案。。。