2016-02-15 49 views
0

我有一個查詢根據CB分數執行不同的帳戶計數。我遇到的問題是,帳戶可以經常切換信用評分。所以我想爲特定賬戶獲得最大信用評分。 由於CB分數的轉換,我得到的回報比我想要的要高。在多行上選擇不同計數的最大值

因此,例如,帳戶1234最初的cb分數爲500,隨後的cb分數爲550.帳戶1234現在都處於cb分數範圍內,但我只想計算一次。

WITH 
    MEMBER mem1 AS 
    Count 
    (
     NonEmpty 
     (
     [AccountID].[Account ID].[Account ID].MEMBERS 
     ,measures.[Transaction Amount] 
    ) 
    ) 
SELECT 
    NON EMPTY 
    {mem1} ON 0 
,[CB Score].[RANGE].[RANGE] ON 1 
FROM [CUBE] 
WHERE [PROMO].[PROMO].&24 

回答

2

試試這個:

WITH 
    MEMBER mem1 AS 
    Sum 
    (
     [AccountID].[Account ID].[Account ID].MEMBERS 
     ,IIF(
     Not IsEmpty([Measures].[Transaction Amount]) 
     And IsEmpty(Sum({[CB Score].[RANGE].CurrentMember.NextMember : null}, [Measures].[Transaction Amount])), 
     1, 
     Null 
    ) 
    ) 
SELECT 
    NON EMPTY 
    {mem1} ON 0 
,[CB Score].[RANGE].[RANGE] ON 1 
FROM [CUBE] 
WHERE [PROMO].[PROMO].&24 

基本邏輯是,如果他們在這片,如果沒有更大的CB分數範圍有交易有交易來算的帳戶。

+0

非常好!謝謝。 – user3266792

+0

非常好的mdx:這些結構使它比sql更有吸引力。 (道歉,我有點福音派) – whytheq