Mondrain MDX用于日期范围之间的记录,其中开始日期和结束日期是独立的列

Mondrain MDX用于日期范围之间的记录,其中开始日期和结束日期是独立的列,mdx,pentaho,mondrian,Mdx,Pentaho,Mondrian,我想在相同维度的两列之间搜索日期。列名称为开始日期和结束日期。我尝试了每一件事,下面的查询给了我这个错误:Mondrian错误:内部错误:无法推断对函数“:”的调用类型 MDX查询: WITH SET [~ROWS] AS Hierarchize ( { {[Location_Cluster.default].[All Location_Cluster.defaults]} ,{[Location_Cluster.default]

我想在相同维度的两列之间搜索日期。列名称为开始日期和结束日期。我尝试了每一件事,下面的查询给了我这个错误:Mondrian错误:内部错误:无法推断对函数“:”的调用类型

MDX查询:

WITH 
  SET [~ROWS] AS 
    Hierarchize
    (
      {
        {[Location_Cluster.default].[All Location_Cluster.defaults]}
       ,{[Location_Cluster.default].[Location_Cluster].MEMBERS}
      }
    ) 
  MEMBER [Measures].[QTY Percent] AS 
      [Measures].[Total_Quantity]
    / 
      (
        [Measures].[Total_Quantity]
       ,[Location_Cluster.default].[All Location_Cluster.defaults]
      ) 
   ,format_string = '0.00%' 
  MEMBER [Measures].[Revenue Percent] AS 
      [Measures].[Total_Revenue]
    / 
      (
        [Measures].[Total_Revenue]
       ,[Location_Cluster.default].[All Location_Cluster.defaults]
      ) 
   ,format_string = '0.00%' 
  MEMBER [Measures].[Margin Percent] AS 
      [Measures].[Total_Margin]
    / 
      (
        [Measures].[Total_Margin]
       ,[Location_Cluster.default].[All Location_Cluster.defaults]
      ) 
   ,format_string = '0.00%' 
SELECT 
  NON EMPTY 
    {
      [Measures].[Sku_Count]
     ,[Measures].[Total_Quantity]
     ,[Measures].[QTY Percent]
     ,[Measures].[Total_Revenue]
     ,[Measures].[Revenue Percent]
     ,[Measures].[Total_Margin]
     ,[Measures].[Margin Percent]
    } ON COLUMNS
 ,NON EMPTY 
    [~ROWS] ON ROWS
FROM [APCS_SALES_CUBE]
WHERE 
  (
    {[Date].[Start_Date].&[2017-01-01] : NULL}
   ,{NULL : [Date].[End_Date].&[2017-03-01]}
   ,[Cluster.Cluster_Id].[2]
   ,[Taxonomy.default].[Taxonomy_ID].[3]
   ,[Company.Company_Name].[Compnay_Name].[1]
  );
我通过以下链接解决了这个问题。但不知道如何在Mondrian MDX中应用specify函数


您的查询格式不正确。你需要在你想要切片的范围内进行设置。以下是一个例子:

WITH SET [~ROWS] AS
 (${dateFromParameter} : ${dateToParameter}) 
MEMBER Measures.[number] as 
FORMAT([date].[godina].CurrentMember.PROPERTIES("datum"), "dd.mm.yyyy")
SET [ROOT] AS
FILTER([ORG].[org_id].Members, [ORG].[org_id].currentmember.parent.parent=[ORG].[org_id].currentmember.parent)        

SELECT
NON EMPTY {[Measures].[total], Measures.[number]} ON COLUMNS,
NON EMPTY [ROOT] * [~ROWS] ON ROWS
FROM [svcs]