如果你採取格雷格·加洛韋的建議,非常適合你。否則,另一個好的MDX
挑戰!
以下是您可以做的事情。
首先按照自然順序排列集合。
接下來,僅針對集合中的當前成員與先前成員不相同或者如果它是第一個成員(在這種情況下當前總是不相同的情況下)的度量[To Pay]
如以前的成員)
with set [Client&Case] as
order
(
[Fact].[ClientID].[All].children * [Fact].[CaseID].[All].children,
[Fact].[ClientID].currentmember.name + "" + [Fact].[CaseID].currentmember.name
)
member measures.[Actual - To Pay] as
sum
(
[Client&Case],
iif
(
not([Client&Case].item([Client&Case].currentordinal-1) is [Client&Case].item([Client&Case].currentordinal-2))
--current not same not as previous
or [Client&Case].currentordinal = 1 --the first member!
,[Measures].[To Pay]
,0
)
)
select
{measures.[Paid], measures.[Actual - To Pay]} on 0,
[Client&Case] on 1
from [Your Cube]
從Adventure Works公司:
with set [Category&Country] as
{
([Product].[Category].&[3], [Customer].[Customer Geography].[Country].&[Australia]),
([Product].[Category].&[3], [Customer].[Customer Geography].[Country].&[Australia]),
([Product].[Category].&[4], [Customer].[Customer Geography].[Country].&[Australia]),
([Product].[Category].&[4], [Customer].[Customer Geography].[Country].&[Australia]),
([Product].[Category].&[4], [Customer].[Customer Geography].[Country].&[Australia])
}
member measures.TotalInternetSales as
sum([Category&Country],[Measures].[Internet Sales Amount])
member measures.[ActualInternetSales] as
sum
(
[Category&Country],
iif
(
not([Category&Country].item([Category&Country].currentordinal-1) is [Category&Country].item([Category&Country].currentordinal-2))
or [Category&Country].currentordinal = 1
,([Category&Country].currentmember, [Measures].[Internet Sales Amount])
,0
)
)
select
{measures.TotalInternetSales, measures.[ActualInternetSales]} on 0
from [Adventure Works]
希望工程。
SSAS Multidimensional or Tabular? – GregGalloway
計算不同的ToPay值似乎非常危險。客戶不可能欠兩個單獨的$ 1000付款嗎?你如何區分這兩種單獨的付款? – GregGalloway
這是但我們將有兩個不同的CaseID的。業務案例與租購相關。一個客戶可能有兩個信用點,我需要知道他已經償還了多少。我想將它放在一張表中 - 現在我在DSV中創建了查詢以獲取不同的值,但我很確定可以在MDX中解決它。 –