我有一个查询根据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
答案 0 :(得分: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得分范围有交易,则逻辑是计算帐户。