Forum Discussion

scabral's avatar
scabral
Icon for Helper IV rankHelper IV
6 years ago
Solved

retrieve rows with max value within a group based on date filter

Hi,   i have the following table with some sample data similar to what we have in our model:   Claim Id Damage Id Location Id Seq # Reserve Date Reserve Value Reserve Status 1 99 33...
  • Anonymous's avatar
    Anonymous
    6 years ago

     

     

    // Assumptions:
    // Apart from [Reserve Status] all other columns
    // in the fact table T should be hidden. Let's 
    // assume that the AsOfDateSlicer table that stores
    // dates is DISCONNECTED from T.
    
    [Total Reserve] =
    var __asOfDate = SELECTEDVALUE( AsOfDateSlicer[Date] )
    var __filter =
        CALCULATETABLE(
            ADDCOLUMNS(
                SUMMARIZE(            
                    T,
                    T[ClaimId],
                    T[DamageID],
                    T[LocationID]
                ),
                "@MaxSeq",
                    CALCULATE( MAX( T[Seq #] ) )
            ),
            KEEPFILTERS( T[Reserve Status] = "approved" ),
            T[Reserve Date] <= __asOfDate
        )
    var __result =
        CALCULATE(
            SUM( T[Reserve Value] ),
            treatas(
                __filter,
                T[ClaimId],
                T[DamageID],
                T[LocationID],
                T[Seq #]
            ),
            ALL( T )
        )
    RETURN
        __result