Ssas 用于计算所有商品量(%ACV)的MDX公式

Ssas 用于计算所有商品量(%ACV)的MDX公式,ssas,mdx,Ssas,Mdx,我想为所有商品量(ACV)指标创建一个度量。公式如下: 销售产品的经销商的总销售额/所有经销商的总销售额 让我们举一个例子,例如AdventureWorks2012DW Cube中的产品“LL Touring Frame-Blue,44” 我们可以看到它被14个经销商出售 这14家经销商总共销售了2706909美元 如果我把所有的经销商都算进去,他们的销售额是80450596美元 对于产品“LL Touring Frame-Blue,44”,我的ACV测量值将返回2 607 909/80

我想为所有商品量(ACV)指标创建一个度量。公式如下:

销售产品的经销商的总销售额/所有经销商的总销售额

让我们举一个例子,例如AdventureWorks2012DW Cube中的产品“LL Touring Frame-Blue,44”

我们可以看到它被14个经销商出售

这14家经销商总共销售了2706909美元

如果我把所有的经销商都算进去,他们的销售额是80450596美元

对于产品“LL Touring Frame-Blue,44”,我的ACV测量值将返回2 607 909/80 450 596=2%,这意味着它将出现在经销商那里,他们占我间接销售额的2%

我要找的是MDX表达式,它接受“所有产品的经销商销售额”,而不是所选产品的经销商销售额,但前提是“所选产品的经销商销售额不为空”

到目前为止,感谢社区的帮助,如果我对某些特定产品进行筛选,我可以进行查询,从而得到正确的结果:

将ActiveStores设置为非空( [DimStore].[Store].[Store] ,{([DimProduct].[Product].CurrentMember[Measures].[Sales]} )

成员ACV作为总和(ActiveStores,[度量值][门店销售]/[度量值][门店销售]

选择列上的非空ACV, 行上的非空{([DimProduct].[Product].[Product].[Product].ALLMEMBERS)} FROM(在[Cube]的列上选择({[DimProduct].[Product].&[HAMAC DE VOYAGE]})

此查询为过滤后的产品返回9%的ACV。但是,如果我仅通过从[Cube]中放入来删除过滤器,则所有产品的ACV都将变为100%,即使是在上一次查询中为9%的产品

这就像ActiveStores集绑定了WHERE子句,而不是ROWS轴


关于

要查找销售额不为空的成员,您可以使用
非空
功能:

NonEmpty(
  [Stores].[Stores].members
  ,(
     [Product].[Product].[ProductA]
   , [Measures].[Sales]
   )
)
那么:

Sum(
 [Store].[Store].[Store].Members,
 IIF(
  IsEmpty([Measures].[Sales]),
  Null,
  (
    ROOT([Product])
   ,ROOT([Supplier])
   ,ROOT([Promotion])
   ,ROOT([Misc])
   ,[Measures].[Sales]
  )
 )
)

我可以通过这种方式找到解决方案:

我添加了一个聚合事实(商店销售额)作为维度商店的属性。使用它创建了一个度量值Store Sales,然后使用以下表达式创建了一个计算度量值:

SUM(NonEmpty(
            [DimStore].[Store].[Store]
            ,([Measures].[Sales])
        ), [Measures].[Store Sales]) / (ROOT([DimStore]), [Measures].[Store Sales])

感谢whytheq的回复,不幸的是,此表达式的结果始终为空。再次感谢,但仍然返回空值:/请将完整的
mdx
脚本添加到问题中我已更新我的帖子。再次感谢您对whytheq的帮助。@user2018454我对这个函数不太熟悉
ROOT
我不懂一些东西。你的MDX看起来不错。你就不能用[Measures].[Sales]替换[Measures].[Distinct Number of Stores]然后完成吗?Greggallowy,如果我这样做,我会得到所选产品在销售商店的销售额,我需要的是所选产品销售商店中所有产品的销售额。我已经通过添加更多详细信息更新了我的帖子。谢谢Greg,我想我们就快到了。我已经用一个查询更新了我的帖子,该查询给出了正确的结果,但只有在过滤了某个产品的情况下,目的是使它在没有过滤的情况下工作。@user2018454如果用户没有过滤到某个特定的产品,你统计哪些商店?所有的商店?不清楚“无过滤器工作”是什么意思