1

我想创建一个条形图,每个月都有一个条形图和一些度量值。

但我也想过滤可能不完全重叠的日期范围。

发生这种情况时,我希望该月的总计数仅在我的日期范围内的天数上进行汇总,而不是整个月的汇总。

使用 MDX 是否可行?如果是这样,请求应该是什么样子?

4

3 回答 3

1

您可以使用子选择。您可以在此页面和此页面上找到更多信息:

当在轴子句中指定了一个成员时,该成员及其祖先和后代将包含在子选择的子立方体空间中;所有未提及的兄弟成员,在轴或切片器子句中,以及它们的后代都从子空间中过滤出来。这样,外部 select 的空间就被限制在了 axis 子句或 slicer 子句中的现有成员中,它们的祖先和后代如前所述。

这是一个例子:

SELECT { [Customer].[Customer Geography].[Country].&[Australia]
       , [Customer].[Customer Geography].[Country].&[United States]
       } ON 1
     ,  {[Measures].[Internet Sales Amount], [Measures].[Reseller Sales Amount]} ON 0
  FROM ( SELECT {[Customer].[Customer Geography].[Country].&[Australia]
                 , [Customer].[State-Province].&[WA]&[US]} ON 0
           FROM [Adventure Works]
        )

结果将包含一行Autralia用于United States. 使用子选择,我将值限制为United Stated状态Washington

于 2012-10-02T06:22:46.633 回答
1

使用原始维度的虚拟维度创建第二个时间维度。在 WHERE 中使用一个维度,在 SELECT 中使用另一个维度。

如果有些人想要季度和期间的“业务时间”,而其他人更喜欢几个月,这通常会发生。或者,如果您的财政年度为 4 月至 4 月。

于 2012-10-18T14:04:44.967 回答
0

我发现用蒙德里安做的一种方法如下

WITH MEMBER [Measures].[Units Shipped2] AS
SUM
(
 {
  exists([Store].[Store Country].currentmember.children,{[Store].[USA].[WA],[Store].[USA].[OR]})
 },[Measures].[Units Shipped]
)
MEMBER [Measures].[Warehouse Sales2] AS
SUM
(
 {
  exists([Store].[Store Country].currentmember.children,{[Store].[USA].[WA],[Store].[USA].[OR]})
 },[Measures].[Warehouse Sales]
)
SELECT 
{[Measures].[Units Shipped2],[Measures].[Warehouse Sales2]} ON 0,
NON EMPTY [Store].[Store Country].Members on 1
FROM [Warehouse]

我不确定过滤是否会像下面这样在 SQL 中完成并提供良好的性能或在本地运行

select Country, sum(unit_shipped)
where state in ('WA','OR' )
group by Country 
于 2012-10-02T16:11:44.563 回答