Ssas 用于计算产品名称数的MDX查询

Ssas 用于计算产品名称数的MDX查询,ssas,mdx,mdx-query,Ssas,Mdx,Mdx Query,我是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

我是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个产品名称

但我希望结果是:

第150周 第2周73 第3周34 .
.

欢迎来到MDX。你的任务有问题。当你说你想计算“每周产品名称”时,你需要根据事实来计算它们。例如,这周售出的产品数量。计算的方法基本上是计算产品维度中的所有产品

对于下面的示例,我使用的是AdventureWorks

在下面的示例中,我想知道第1周销售了多少种产品。这里我们讨论的是产品类型的计数,而不是单位。下面的查询就是这样做的

select [Measures].[Internet Sales Amount] on columns,
non empty
([Date].[Calendar Week of Year].&[1],[Product].[Product].[Product])
on rows 
from [Adventure Works]
结果:

结果计数

注意,在结果计数中,它显示了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”转换为本周,因此我们可以计算任何一周。

@Shivang运气好吗?