【问题标题】:How to add a calculated member to all members of a level?如何将计算成员添加到级别的所有成员?
【发布时间】:2019-01-04 10:03:14
【问题描述】:

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

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

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

我知道如何为单个成员做到这一点:

创建会员 CURRENTCUBE.[CompanyWorkers].[CompanyHierarchy].[Company].&1.[Average] 作为 ....

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

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

【问题讨论】:

    标签: ssas mdx olap


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 你为我的层次结构调用这个度量是什么意思?如果我添加这样的计算度量(为简单起见,我省略了平均逻辑): CREATE MEMBER CURRENTCUBE.[Measures].[Average] AS 1000, VISIBLE = 1;接下来我该怎么办?
    • @Yuriy 我建议,与其将成员添加到您的 中,不如将其添加为衡量标准。该衡量标准背后的逻辑是工资总和除以不同员工的数量。现在,您还可以限制此度量以仅在使用您的公司维度时返回结果。这可以通过检查当前成员的默认值来完成。我希望我能够解释。如果您仍然遇到问题,请分享结果的屏幕截图,我将提供示例查询
    • 感谢您的解释。也许我可以按照您提供的方式计算平均值,但方式有点不同。我已经用截图更新了这个问题。非常感谢一些示例查询
    • @Yuriy 不客气。当然我给你一个样品。我现在有点忙,但我一有时间就会尝试做。
    • @Yuriy 上面的查询有帮助吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2018-01-08
    • 2018-02-27
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多