首页 > 解决方案 > 如何将计算成员添加到级别的所有成员?

问题描述

为了更详细地描述,我有一个立方体,其中包含有关大型财团(几家公司)中工人工资和其他费用的数据。因此,我创建了维度 Time、FeeType 和 CompanyWorkers。

我还在 CompanyWorkers 维度中创建了一个 CompanyHierarchy,显然是Company->Worker.

现在我需要获得每家公司的费用平均值。我想这意味着我必须在 CompanyHierarchy 中创建一个计算成员。

我知道如何为单个成员执行此操作:

CREATE MEMBER CURRENTCUBE.[CompanyWorkers].[CompanyHierarchy].[Company].& 1 .[Average] AS ....

为我的多维数据集中的每个公司复制这行代码似乎不正确。我可以编写一个命令将平均值添加到每个公司吗?

UPD:我想要达到的结果是这样的: 示例

标签: ssasmdxolap

解决方案


您需要有一个具有平均逻辑的计算度量。现在为您的层次结构调用此度量,它将为您提供每家公司的平均值。您不需要为每个成员添加它。要添加计算度量,您需要转到多维数据集中的计算选项卡。

编辑:添加了一个示例查询

您可以查看下面的示例,我更喜欢以这种方式计算平均值并将它们排列在 UI 上,使其看起来像您共享的屏幕截图

with member 
[Measures].[Reseller Sales AmountAverage]
as
case when [Geography].[Geography].currentmember is [Geography].[Geography].defaultmember then null 
else 
([Geography].[Geography].currentmember.parent,[Measures].[Reseller Sales Amount])/([Geography].[Geography].currentmember.parent,[Measures].[Reseller Order Quantity])
end
select 
{[Measures].[Reseller Sales Amount],[Measures].[Reseller Order Quantity],[Measures].[Reseller Sales AmountAverage]}
on columns,
[Geography].[Geography].members 
on rows 
from [Adventure Works]

在此处输入图像描述

现在,如果您想让它完全像您的图片一样显示,那么您可以采用您建议的方法,在每个级别添加平均成员。


推荐阅读