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

时间:2015-04-22 00:06:01

标签: ssas mdx data-warehouse cube

我需要从我的多维数据集中生成一个类似于以下内容的报告。 enter image description here(虚拟数据)

它列出了今天,本周,产品类别中的期间和年度的销售额和毛利。

我的立方体设置如下 日期维度enter image description here

立方体本身 enter image description here

目前我尚未实施产品类别。

我正在努力学习如何编写一个MDX查询,该查询可以返回一天或一周的销售/毛利等等。

我可以像这样单独归还

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

以及其他各种类型(周等),但我不确定如何将where过滤器应用于columnn本身而不是整体查询,或者这是否是正确的方法它和我应该进行多个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.

这里有指针吗?

2 个答案:

答案 0 :(得分:2)

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

这可以在US $9.76 - 13.26多维数据集中完成,如下所示。

[Adventure Works]

答案 1 :(得分:0)

如果您可以从同一用户层次结构中获取不同级别的日期,则可能出现类似这样的情况:

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];

以上结果如下:

enter image description here