Forum Discussion

RonSwanson's avatar
RonSwanson
Frequent Visitor
6 years ago
Solved

SQL to DAX Conversion

Hi Experts,

 

Looking to translate the below into DAX, but I have little experience.  Any ideas? Thanks in advance.

 

CASE WHEN (25000 <
CASE WHEN [ReSignedMembers] is missing THEN 0 ELSE [ReSignedMembers] END +
CASE WHEN  [ConversionMembers] is missing THEN 0 ELSE [ConversionMembers] END +
CASE WHEN  [NewMembers] is missing THEN 0 ELSE [NewMembers] END +
CASE WHEN  [MaintenanceMembers] is missing THEN 0 ELSE CASE WHEN [MaintenanceMembers] < 0 THEN 0 ELSE [MaintenanceMembers] END END)
THEN (25000) ELSE (
CASE WHEN [ReSignedMembers] is missing THEN 0 ELSE [ReSignedMembers] END +
CASE WHEN  [ConversionMembers] is missing THEN 0 ELSE [ConversionMembers] END +
CASE WHEN  [NewMembers] is missing THEN 0 ELSE [NewMembers] END +
CASE WHEN  [MaintenanceMembers] is missing THEN 0 ELSE CASE WHEN [MaintenanceMembers] < 0 THEN 0 ELSE [MaintenanceMembers] END END
) END
  • Hi RonSwanson ,

    The whole dax code may like this:

    A =
    IF (
        25000
            < IF ( ISBLANK ( [ReSignedMembers] ), 0, [ReSignedMembers] )
                + IF ( ISBLANK ( [ConversionMembers] ), 0, [ConversionMembers] )
                + IF ( ISBLANK ( [NewMembers] ), 0, [NewMembers] )
                + IF (
                    ISBLANK ( [MaintenanceMembers] ),
                    0,
                    IF ( [MaintenanceMembers] < 0, 0, [MaintenanceMembers] )
                ),
        25000,
        IF ( ISBLANK ( [ReSignedMembers] ), 0, [ReSignedMembers] )
            + IF ( ISBLANK ( [ConversionMembers] ), 0, [ConversionMembers] )
            + IF ( ISBLANK ( [NewMembers] ), 0, [NewMembers] )
            + IF (
                ISBLANK ( [MaintenanceMembers] ),
                0,
                IF ( [MaintenanceMembers] < 0, 0, [MaintenanceMembers] )
            )
    )

     

    Best Regards,
    Yingjie Li

    If this post helps then please consider Accept it as the solution to help the other members find it more quickly.

5 Replies

  • RonSwanson , it would be a combination of switch true and if. Setup a small example

     

    Switch (true(),
    25000 < if(isblank( [ReSignedMembers] ) , 0 , [ReSignedMembers] ) +
    if(isblank( [ConversionMembers] ) , 0 , [ConversionMembers] ) +


    /// Try to do rest
    CASE WHEN [NewMembers] is missing THEN 0 ELSE [NewMembers] END +
    CASE WHEN [MaintenanceMembers] is missing THEN 0 ELSE CASE WHEN [MaintenanceMembers] < 0 THEN 0 ELSE [MaintenanceMembers] END END)
    THEN (25000) ELSE (
    CASE WHEN [ReSignedMembers] is missing THEN 0 ELSE [ReSignedMembers] END +
    CASE WHEN [ConversionMembers] is missing THEN 0 ELSE [ConversionMembers] END +
    CASE WHEN [NewMembers] is missing THEN 0 ELSE [NewMembers] END +
    CASE WHEN [MaintenanceMembers] is missing THEN 0 ELSE CASE WHEN [MaintenanceMembers] < 0 THEN 0 ELSE [MaintenanceMembers] END END
    )

  • Greg_Deckler's avatar
    Greg_Deckler
    Community Champion

    RonSwanson Not really enough information to go on, please first check if your issue is a common issue listed here: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p/1116882

    Also, please see this post regarding How to Get Your Question Answered Quickly: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

    The most important parts are:
    1. Sample data as text, use the table tool in the editing bar
    2. Expected output from sample data
    3. Explanation in words of how to get from 1. to 2.

  • v-yingjl's avatar
    v-yingjl
    Community Support

    Hi RonSwanson ,

    The whole dax code may like this:

    A =
    IF (
        25000
            < IF ( ISBLANK ( [ReSignedMembers] ), 0, [ReSignedMembers] )
                + IF ( ISBLANK ( [ConversionMembers] ), 0, [ConversionMembers] )
                + IF ( ISBLANK ( [NewMembers] ), 0, [NewMembers] )
                + IF (
                    ISBLANK ( [MaintenanceMembers] ),
                    0,
                    IF ( [MaintenanceMembers] < 0, 0, [MaintenanceMembers] )
                ),
        25000,
        IF ( ISBLANK ( [ReSignedMembers] ), 0, [ReSignedMembers] )
            + IF ( ISBLANK ( [ConversionMembers] ), 0, [ConversionMembers] )
            + IF ( ISBLANK ( [NewMembers] ), 0, [NewMembers] )
            + IF (
                ISBLANK ( [MaintenanceMembers] ),
                0,
                IF ( [MaintenanceMembers] < 0, 0, [MaintenanceMembers] )
            )
    )

     

    Best Regards,
    Yingjie Li

    If this post helps then please consider Accept it as the solution to help the other members find it more quickly.