我想为All-Commodity Volume(ACV)指标创建一个衡量指标。公式如下:
销售产品的经销商/所有经销商的总销售额的总销售额
让我们举一个例子,例如来自AdventureWorks2012DW Cube的产品“LL Touring Frame - Blue,44”。
我们可以看到它由14家经销商销售
这14家经销商合计销售2 706 909 $
如果我带走了所有经销商,他们将获得80 450 596美元的销售额
我的ACV措施将返回2 607 909/80 450 596 = 2%的产品“LL Touring Frame - Blue,44”,这意味着它出现在我的间接销售额的2%的经销商处。
我正在寻找的是MDX表达式,它取代所有产品的“经销商销售额”而不是所选产品的经销商销售额,但仅限于“所选产品的经销商销售额不为空” ”。
到目前为止,感谢社区的帮助,如果我对某些特定产品进行过滤,我可以提出一个查询,以便给出正确的结果:
WITH SET ActiveStores As NonEmpty( [DimStore] [存储] [存储] ,{([DimProduct]。[Product] .CurrentMember,[Measures]。[Sales])} )
会员ACV为SUM(ActiveStores,[Measures]。[Store Sales])/ [Measures]。[Store Sales]
在列上选择非空的ACV, NON EMPTY {([DimProduct]。[Product]。[Product] .ALLMEMBERS)} ON ROWS FROM(SELECT({[DimProduct]。[Product]。& [HAMAC DE VOYAGE]})来自[Cube]的栏目
此查询为过滤后的产品返回9%的ACV。但是,如果我只通过放置FROM [Cube]来删除过滤器,则所有产品的ACV变为100%,即使是之前查询的ACV变为9%。
就像ActiveStores集绑定了WHERE子句而不是ROWS轴。
此致
答案 0 :(得分:0)
要查找Sales不为null的成员,您可以使用NonEmpty
函数:
NonEmpty(
[Stores].[Stores].members
,(
[Product].[Product].[ProductA]
, [Measures].[Sales]
)
)
答案 1 :(得分:0)
怎么样:
#body_splash#body_main
答案 2 :(得分:0)
我可以通过这种方式找到解决方案:
我添加了一个聚合事实(Store Sales)作为维度商店的属性。从中创建一个Measure Store Sales,然后使用以下表达式创建计算度量:
SUM(NonEmpty(
[DimStore].[Store].[Store]
,([Measures].[Sales])
), [Measures].[Store Sales]) / (ROOT([DimStore]), [Measures].[Store Sales])