Ssas 从MDX中的订单行获取订单成本

Ssas 从MDX中的订单行获取订单成本,ssas,mdx,Ssas,Mdx,在我的多维数据集中,我有一个事实订单行,它具有可变的订单成本。此变量对于每个订单都是唯一的,并且在订单的每个订单行中都具有相同的值 现在我想创建一个计算字段,对订单成本进行求和,但每个订单只取一次该值 因此,使用计算成员 +-------------------+--------------+------------+ | Order Line Number | Order Number | Order Line | | |

在我的多维数据集中,我有一个事实订单行,它具有可变的订单成本。此变量对于每个订单都是唯一的,并且在订单的每个订单行中都具有相同的值

现在我想创建一个计算字段,对订单成本进行求和,但每个订单只取一次该值

因此,使用计算成员

+-------------------+--------------+------------+            
| Order Line Number | Order Number | Order Line |
|                   |              | Order Cost |
+-------------------+--------------+------------+
|                10 |            1 | $0.20      |
|                11 |            1 | $0.20      |
|                20 |            2 | $0.25      |
+-------------------+--------------+------------+
必须变成这样

+--------------+------------+
| Order Number | Order Cost |
+--------------+------------+
|            1 | $0.20      |
|            2 | $0.25      |
+--------------+------------+
我目前使用的MDX表达式(见下文)在订单行上求和,使得订单号1的订单成本为0.40美元

SUM( 
    DISTINCT( 
        CROSSJOIN(
            [Order Line Details].[Order Number].[All].Children, [Measures].[Order Line Order Cost]
        )
    )
)
我需要改变什么才能获得所需的行为?

如果关于这个问题有任何不清楚的地方,请告诉我

解决方案


好的,我发现了问题。我将聚合行为从[Measures].[Order Line Order Cost]更改为min。之后,初始解决方案开始工作。谢谢你的帮助

下面的方法有效吗?我已经消除了不必要的
交叉连接
,将
distinct
函数放在
[订单行详细信息][订单号].子项上
,并使用
SUM
函数将订单行订单成本与订单号相加

SUM(
    DISTINCT([Order Line Details].[Order Number].Children)
    , [Measures].[Order Line Order Cost]
   )
编辑 请尝试以下代码:

WITH
SET DistinctOrderNumbers AS
DISTINCT(EXISTING [Order Line Details].[Order Number].Children)

MEMBER [Measures].[Order Cost] AS 
SUM(DistinctOrderNumbers, [Measures].[Order Line Order Cost]) 

SELECT NON EMPTY { [Measures].[Order Cost] } ON COLUMNS, 
NON EMPTY { ([Reseller].[Reseller].[Reseller].ALLMEMBERS ) } ON ROWS 
FROM [BI Cube] 
EDIT2(平均值非总和)

请尝试以下方法:

MIN( 
    [Order Line Details].[Order Number].[All].Children
   ,[Measures].[Order Line Order Cost]
    )

否,它仍然对所有订单行的[Order Line Order Cost]求和。您使用的整个MDX查询是什么?
将成员[Measures].[Order Cost]作为和(不同的([Order Line Details].[Order Number].[Order Line Order Cost]),[Measures].[Order Cost]}在列上选择非空的{[Measures].[Order Cost]},非空的{([经销商].[经销商]。[BI Cube]
中的行返回相同的结果。@Raymond-我认为您在这里寻找的是平均值,而不是总和。请尝试编辑2
MIN( 
    [Order Line Details].[Order Number].[All].Children
   ,[Measures].[Order Line Order Cost]
    )