如何在立方体中多次过滤测量

How to filter measure multiple times in cube

我需要从我的多维数据集生成一份报告,如下所示。 (虚拟数据)

其中列出了产品类别中今天、本周、期间和年初至今的销售额和毛利。

我的立方体设置如下 日期维度

还有立方体本身

目前我还没有实现商品分类件

我正在为如何编写一个 MDX 查询而苦恼,该查询可以 return sales/gross 一天、然后一周等的利润。

我可以 return 像这样

SELECT {[Measures].[Gross Profit],[Measures].[Price]} ON COLUMNS
From [Cube]
WHERE [Date].[Date Key].[2015-04-22];

等等其他各种类型(周等),但我不确定如何将 where 过滤器应用于列本身而不是整个查询,或者这是否是正确的方法它和我应该进行多个 MDX 调用,然后我在将使用它的应用程序中编写这些调用。

谁能给我一个正确方向的指示?

编辑:似乎主要使用@Akshay Rane 描述的方法工作,但是我无法让我的措施之一起作用

MEMBER [This Week] as 
 (PeriodsToDate([Date].[Fiscal Week Date].[Fiscal Week],StrToMember('[Date].[Fiscal Week Date].[Date Key].&[' + '20140401' + ']'))
,[Measures].[Merchandise Gross Profit])

给我一个错误:

The  function expects a string or numeric expression for the  argument. A tuple set expression was used.

这里有任何指示吗?

如果您可以从同一用户层次结构中获取不同级别的日期,那么这样的事情是可能的:

SELECT 
    {
      [Date].[Calendar].[Month].&[2006]&[7]
     ,[Date].[Calendar].[Date].&[20050220]
    }
  * 
    {
      [Measures].[Order Quantity]
     ,[Measures].[Internet Sales Amount]
    } ON COLUMNS
 ,{[Product].[Category].Children} ON ROWS
FROM [Adventure Works];

上面的结果是这样的:

您必须为要聚合数据的每个时间间隔创建单独的计算所得成员。

这可以在 [Adventure Works] 立方体中完成,如下所示。

WITH 

MEMBER [Today] as 
    ([Measures].[Internet Sales Amount], [Date].[Date].CURRENTMEMBER)

MEMBER [Last Week] as 
    AGGREGATE   ( 
                    { [Date].[Date].CURRENTMEMBER.lag(6) : [Date].[Date].CURRENTMEMBER }
                    , [Measures].[Internet Sales Amount] 
                )

SELECT 
        { [Today], [Last Week] } ON 0,

        { ([Product].[Product Categories].[Category], [Date].[Date].[Date]) } ON 1

FROM 

(   
    /*FILTERING ON SPECIFIC DATE USING SUBCUBE*/
    SELECT [Date].[Date].&[20070715] ON 0 
    FROM [Adventure Works]
)