同一查询中两个不同平均值的MDX查询和计算成员

同一查询中两个不同平均值的MDX查询和计算成员,mdx,average,Mdx,Average,我这里有一个MDX/computed会员问题。我已经有一段时间没有这样做了,忘记了很多。我有一个具有以下维度和级别的立方体: 地点 站点名称 客户 客户名称 行业名称 我有一个度量 产品数量 我想从MDX查询中显示/返回的内容如下: Site | Prod Count |当前客户所有站点的平均Prod Count |平均Prod Count 跨当前客户所在行业的所有站点 示例数据: Site | Prod Count | Avg 1 | Avg 2

我这里有一个
MDX/computed
会员问题。我已经有一段时间没有这样做了,忘记了很多。我有一个具有以下维度和级别的立方体:

地点

  • 站点名称
客户

  • 客户名称
  • 行业名称
我有一个度量

  • 产品数量
我想从
MDX
查询中显示/返回的内容如下:

Site | Prod Count |当前客户所有站点的平均Prod Count |平均Prod Count

跨当前客户所在行业的所有站点

示例数据:

Site      | Prod Count   | Avg 1          | Avg 2

Site 1    | 100          | 50             | 200  
Site 2    | 125          | 50             | 200  
Site 3    | 112          | 50             | 200
我想弄清楚的是如何或是否可以使用两个不同的计算成员来计算上述平均值。

挑战在于查询必须采用以下格式,因为我使用的是报告工具,它正在生成MDX

`SELECT
{
[Measures].[Product Count],
[Measures].[Calc Avg 1],
[Measures].[Calc Avg 2]
} ON COLUMNS,
{[Sites].[Site Name].[Site Name].Members} ON ROWS
FROM [Cube]
where ([Clients].[Client Name].&[Client A])`
所以基本上,我的问题是:
使用计算过的成员定义平均值的正确方法是什么?


无论何时尝试,我只能计算当前客户所有站点的平均产品数量,但无法获得当前客户所在行业所有站点的平均产品数量。

下面是一个使用adventure works开始的示例。计算出的成员需要移植到MDX脚本,以便与您的工具一起使用。以下是映射:

City=“客户站点” State=“客户机” Country=“客户行业”


不要忘记添加一些边缘情况处理(例如,如果客户端在上下文中有0个“站点”),并考虑使用“存在函数”中的“测量组”参数。你说你试着做计算。你能把你试过的贴出来吗?
WITH
    MEMBER Measures.ClientCitiesCount AS
        Exists(
             [Customer].[City].[City] // represents client sites
            ,[Customer].[State-Province].CurrentMember // represents client
        ).Count
    MEMBER Measures.ClientCitiesSales AS
        SUM(
             [Customer].[State-Province].CurrentMember
            ,[Measures].[Internet Sales Amount]
        )
    MEMBER Measures.AvgAcrossClientCities AS
        ClientCitiesSales/ClientCitiesCount

    MEMBER Measures.IndustryCitiesCount AS
        Exists(
             [Customer].[City].[City] // represents industry sites
            ,Exists(  
                 [Customer].[Country].[Country] // represents client's industry
                ,[Customer].[State-Province].CurrentMember // represents client
            )
        ).Count

    MEMBER Measures.IndustryCitiesSales AS
        SUM(
             Exists(
                 [Customer].[Country].[Country]
                ,[Customer].[State-Province].CurrentMember
             )
             ,[Measures].[Internet Sales Amount]
        )
    MEMBER Measures.AvgAcrossIndustryCities AS
        IndustryCitiesSales/IndustryCitiesCount
SELECT
    {
         [Measures].[Internet Sales Amount]
        ,ClientCitiesCount
        ,ClientCitiesSales
        ,AvgAcrossClientCities
        ,IndustryCitiesCount
        ,IndustryCitiesSales
        ,AvgAcrossIndustryCities
    } ON 0,
    {
        [Customer].[City].[City] // represents client sites
    } ON 1
FROM
    [Adventure Works]
WHERE
    [Customer].[State-Province].&[GA]&[US] // represents client