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]
)