我是MDX的新手,正尝试每周计算产品名称的数量。我已经编写了下面的MDX查询,但结果得到了所有产品计数。
WITH MEMBER [Measures].[Count Of Members] AS
Count(Existing [Product Dimension].[ProductName].Members)
SELECT {[Measures].[Count Of Members]} ON 0,
NON EMPTY
{
[Date Dimension].[Financial WC]
} ON 1
FROM [Cube]
WHERE ([Date Dimension].[FinancialYear].&[2018/19],
[Sales].[PaymentType].&[Delivery])
我得到的结果是:
“全部230”
因为共有230个产品名称
但是我想要的结果是:
第1周50 第2周73 3 3 34 。 。
答案 0 :(得分:0)
欢迎使用MDX。您的任务有问题。当您说要计算“每周的产品名称”时,您需要根据事实对它们进行计数。例如,该周售出的产品数量。计数的方式基本上是对产品维度中的所有产品进行计数。
对于以下示例,我正在使用冒险作品。
在下面的示例中,我想知道第1周售出了多少种产品。在这里,我们谈论的是产品类型的数量而不是单位。下面的查询可以做到这一点。
select [Measures].[Internet Sales Amount] on columns,
non empty
([Date].[Calendar Week of Year].&[1],[Product].[Product].[Product])
on rows
from [Adventure Works]
Notics在结果计数中显示97行。这意味着售出了96种产品,结果还包括列名称,因此计数为97。
现在,让我们看一下解决您的问题的查询。
with member
[Measures].[Test]
as
count(
filter
(([Date].[Calendar Week of Year].currentmember, [Product].[Product].[Product]),[Measures].[Internet Sales Amount]>0)
)
select
[Measures].[Test]
on columns,
[Date].[Calendar Week of Year].[Calendar Week of Year]
on rows
from [Adventure Works]
结果
因此,这表明已出售了96种产品。
查询背后的逻辑是,我们计算一周内所有销售额> 0的产品。 “ .currentmember”转换为当前星期,因此我们可以计算任何一周。