如何将计算成员添加到关卡的所有成员?

时间:2019-01-04 10:03:14

标签: ssas mdx olap

为了更详细地描述,我有一个多维数据集,其中包含有关一个大型财团(多家公司)的工人薪水和其他费用的数据。因此,我创建了时间,费用类型和公司工作人员维度。

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

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

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

  

创建会员   CURRENTCUBE。[CompanyWorkers]。[CompanyHierarchy]。[Company]。&1。[平均]   AS ....

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

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

1 个答案:

答案 0 :(得分:0)

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

编辑:添加了示例查询

您可以看一下下面的示例,我更喜欢以这种方式计算平均值并将其排列在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]

enter image description here

现在,如果要使其完全与图片一样显示,则可以采用建议的在每个级别添加普通成员的方法。