Ssas 在多行上选择最大不同计数

Ssas 在多行上选择最大不同计数,ssas,mdx,ssas-2012,Ssas,Mdx,Ssas 2012,我有一个查询,它根据CB分数对帐户进行不同的计数。我的问题是,一个账户可以经常转换信用评分。因此,我想为一个特定的帐户取最大信用分数。 这是我所拥有的,由于CB分数的转换,它的回报比我想要的要高 例如,账户1234最初的cb分数为500,之后的cb分数为550。帐户1234现在在两个cb分数范围内,但我只想计算一次 WITH MEMBER mem1 AS Count ( NonEmpty ( [AccountID].[Account

我有一个查询,它根据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
试试这个:

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分数范围有交易,则对账户进行计数。

尝试以下方法:

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分数范围有交易,则计算帐户。

太棒了!谢谢。非常好的mdx:这种结构使它比sql更有吸引力。(抱歉我有点福音主义)太棒了!谢谢。非常好的mdx:这种结构使它比sql更有吸引力。(抱歉,我有点福音主义了)