Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
5 years ago
Solved

Conversión de SQL a DAX

Hola expertos, Quiero convertir sql por debajo de una consulta DAX. El 'cnt AS bucket' de SQL resaltado en la consulta da el resultado como 2 buckets. La consulta DAX cuenta todo en 1 bucket en luga...
  • Syndicate_Admin's avatar
    5 years ago

    No @mehra_kanishk88 ,

    Prueba como a continuación:

    Paso 1, utilice la siguiente medida:

    bucket 1 = 
    VAR TEST1 =
        CALCULATE (
            MAX ( vw_fct_prnto_outlet_dergtn[outlet_id] ),
            FILTER (
                vw_fct_prnto_outlet_dergtn,
                vw_fct_prnto_outlet_dergtn[deregister_flg] = "Y"
                    && vw_fct_prnto_outlet_dergtn[deregister_dt] >= DATE ( 2021, 6, 1 )
                    && vw_fct_prnto_outlet_dergtn[deregister_dt] <= DATE ( 2021, 6, 30 )
            )
        )
    VAR TEST2 =
        CALCULATE (
            COUNT ( vw_fct_prnto_outlet_dergtn[deregister_dt] ),
            FILTER (
                vw_fct_prnto_outlet_dergtn,
                vw_fct_prnto_outlet_dergtn[outlet_id] = TEST1
                    && vw_fct_prnto_outlet_dergtn[deregister_dt] <> BLANK ()
                    && vw_fct_prnto_outlet_dergtn[deregister_dt] <= DATE ( 2021, 6, 30 )
                    && vw_fct_prnto_outlet_dergtn[deregister_flg] = "Y"
            )
        )   
    RETURN
        TEST2

    Esto es obtener el resultado sql:

    SELECT         outlet_id,
              hpc_busn_in_src,
        Count([deregister_dt]) Cnt
                                 FROM [PRNTO_V2].[vw_fct_prnto_outlet_dergtn] WITH (nolock)
    WHERE outlet_id IN 
    (SELECT outlet_id
    FROM [PRNTO_V2].[vw_fct_prnto_outlet_dergtn] WITH
    (
    nolock)
    WHERE [deregister_dt] IS NOT NULL
    AND deregister_flg = 'Y'
    AND [deregister_dt] BETWEEN
    '2021-06-01' AND '2021-06-30'
    )
    AND [deregister_dt] IS NOT NULL
    AND deregister_flg = 'Y'
    AND [deregister_dt]<= '2021-06-30'
    GROUP BY outlet_id,
    hpc_busn_in_src) T

    vluwangmsft_0-1626084265793.png

    Paso 2, use el siguiente dax para la nueva tabla:

    Table2 =
    SUMMARIZE (
        'vw_fct_prnto_outlet_dergtn',
        vw_fct_prnto_outlet_dergtn[outlet_id],
        vw_fct_prnto_outlet_dergtn[hpc_busn_in_src],
        "bucket1", [bucket 1]
    )

    A continuación, use el siguiente dax para crear una medida:

    bucket2 = CALCULATE(COUNT(Table2[outlet_id]),ALLEXCEPT(Table2,Table2[bucket1],Table2[hpc_busn_in_src]))

    Out final puesto:

    vluwangmsft_1-1626084398783.png

    ¡Puedes descargar mi archivo pbix si lo necesitas!

    Deseo que sea útil para usted!

    Saludos

    Lucien