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
4

1 回答 1

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 分数范围有交易。

于 2016-02-16T01:46:20.443 回答