【问题标题】:MDX query to count number of product namesMDX 查询以计算产品名称的数量
【发布时间】:2019-01-18 00:51:43
【问题描述】:

我是 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 周 34 . .

【问题讨论】:

    标签: ssas mdx mdx-query


    【解决方案1】:

    欢迎来到 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]
    

    结果:

    结果计数

    结果计数中的注意事项显示 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 运气好吗?
    猜你喜欢
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 2018-04-24
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多