在多行上选择最大的非重复计数

时间:2016-02-15 21:15:57

标签: ssas mdx ssas-2012

我有一个查询根据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

1 个答案:

答案 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得分范围有交易,则逻辑是计算帐户。