Forum Discussion
Declaración SQL a DAX
- 5 years ago
@scheri Ok, pude hacer las dos segundas tablas, pero tienen que ser todas tablas DAX separadas, no en una como yo estaba tratando de hacer.
PASO 2 ?
COLUMNAS DE RESUMEN (
CURRENT_SRC[RPT_PRD_END_DT],
CURRENT_SRC[BRWR_RPT_RIC_SMY_DSC],
FILTRO ( CURRENT_SRC, CURRENT_SRC[MTH_CTGRY] á "M" ),
"WAPD_PCT",
SI (
SUM ( CURRENT_SRC[WAPD_DEN] ) a 0,
BLANK (),
DIVIDE ( SUM ( CURRENT_SRC[WAPD_NUM] ), SUM ( CURRENT_SRC[WAPD_DEN] ) )
)
)AVGTABLE ?
COLUMNAS DE RESUMEN (
STEP2[BRWR_RPT_RIC_SMY_DSC],
"WAPD_PCT", PROMEDIO ( STEP2[WAPD_PCT] )
)Y para @AllisonKennedy, puede que no sea la mejor manera de hacer el trabajo. El objetivo final que está buscando es ese promedio por BRWR_DSC de la WAPD_PCT que RPT_PRD_END_DT da. Esto se puede hacer en una sola medida (utilicé M porque no había Q en la tabla de muestras):
Promedio de WAPD_PCT por BRWR_DSC
AVERAGEX (
VALUES ( CURRENT_SRC[BRWR_RPT_RIC_SMY_DSC] ),
AVERAGEX (
CALCULATETABLE (
VALUES ( CURRENT_SRC[RPT_PRD_END_DT] ),
CURRENT_SRC[MTH_CTGRY] á "M"
),
DIVIDE (
ROUND ( SUM ( CURRENT_SRC[WAPD_NUM] ), 2 ),
ROUND ( SUM ( CURRENT_SRC[WAPD_DEN] ), 2 ),
BLANK ()
)
)
)Por favor, eche un vistazo al PBIX adjunto.
Sorry, could have been more clear. I had it created as a DAX table, and the errors are still generating.
@scheri Es un poco difícil de ayudar sin algunos datos con los que trabajar. ¿Puedes simular sólo 20 filas de cómo es esa tabla base?
- Anonymous5 years agoNot applicable
@DataZoe Aquí tienes, Paso 1 al Paso 3, con datos y consulta.
(Estas consultas forman parte de SP; Puedo crear vistas y obtener el promedio, pero no quería crear objetos adicionales en DB). Otra pregunta :-), para la primera consulta, ¿Hay alguna manera de reemplazar la fecha con una fecha de segmentación de entrada en powerbi(Algo como: rpt_prd_end_dt entre ('SlicerRptDt'[InputRptDt], -61) y ('SlicerRptDt'[InputRptDt])? (El informe se basa en una lista desplegable de fechas, elegida por el usuario)
¡Gracias de nuevo!
1) 20 filas de la siguiente consulta:
SELECCIONAR TOP 20 RPT_PRD_END_DT , MTH_CTGRY ,BRWR_RPT_RIC_SMY_DSC ,WAPD_NUM ,WAPD_DEN
INTO #CURRENT_SRC FROM (SELECCIONESELECT RPT_PRD_END_DT , MTH_CTGRY , BRWR_RPT_RIC_SMY_DSC , BRWR_RPT_RIC_DTL_DSC ,ROUND(WAPD_NUM, 2) COMO WAPD_NUM ,ROUND(WAPD_DEN, 2) COMO WAPD_DEN DESDE [ENT_RSK]. [RECESSION_INDUSTRY_SUMMARY] DONDE 1 X 1 Y RPT_PRD_END_DT ENTRE EOMONTH('30-APR-2020', - 61)Y '30-APR-2020' Y ESR_LNDG_TXN_FLG 1)kk =RPT_PRD_END_DT MTH_CTGRY BRWR_RPT_RIC_SMY_DSC WAPD_NUM WAPD_DEN 31/03/2015 M Fabricación 315731.1 162958710.2 31/03/2015 M Minería 303984 379980000 31/03/2015 M ACEITE & GAS 39770074.7 6332894227 31/03/2015 M ACEITE & GAS 114025.12 142531403.6 31/03/2015 M ACEITE & GAS 2114000.11 1731537396 31/03/2015 M Otro 790821.64 88329256.89 31/03/2015 M Transporte 335947.26 239962325.2 31/03/2015 M Utilidades 678448.5 199997000 31/03/2015 M Utilidades 1562312.21 1055446037 31/03/2015 M COMERCIO AL POR MAYOR 363199.09 30266590.99 31/03/2015 M Fabricación 1049312.84 512614355.1 31/03/2015 M ACEITE & GAS 289164.78 24097065 31/03/2015 M ACEITE & GAS 363572.12 454465152.6 31/03/2015 M Otro 31393.16 3496545.68 31/03/2015 M Utilidades 6101.76 2652941.17 31/03/2015 M Utilidades 50561.08 21983077.7 31/03/2015 M COMERCIO AL POR MAYOR 161248.07 13437339.33 31/03/2015 M PRODUCTOS FOREST 38896.53 8643672.3 31/03/2015 M Fabricación 1905.12 2381400.52 31/03/2015 M Otro 250355.26 20862938.65 Paso 2) Calcular la suma (wapd_num) / suma (wapd_den):
SELECCIONAR RPT_PRD_END_DT ,BRWR_RPT_RIC_SMY_DSC ,CASO CUANDO SUMA(WAPD_den) - 0 A CONTINUACIÓN, NULL ELSE SUM(WAPD_NUM) / SUM(WAPD_den) END AS WAPD_PCT INTO #STEP2 DESDE #CURRENT_SRC GRUPO POR RPT_PRD_END_DT , BRWR_RPT_RIC_SMY_DSC
RPT_PRD_END_DT BRWR_RPT_RIC_SMY_DSC WAPD_PCT 31/03/2015 PRODUCTOS FOREST 0.0045 31/03/2015 Fabricación 0.002016 31/03/2015 Minería 0.0008 31/03/2015 ACEITE & GAS 0.00491 31/03/2015 Otro 0.009517 31/03/2015 Transporte 0.0014 31/03/2015 Utilidades 0.001794 31/03/2015 COMERCIO AL POR MAYOR 0.011999 Paso 3) Calcular el promedio para cada industria:
SELECCIONAR BRWR_RPT_RIC_SMY_DSC , ,AVG(WAPD_PCT)COMO LONG_RUN_WAPD_PCT DE #STEP2 GRUPOPOR BRWR_RPT_RIC_SMY_DSC
BRWR_RPT_RIC_SMY_DSC LONG_RUN_WAPD_PCT PRODUCTOS FOREST 0.0045 Fabricación 0.002016 Minería 0.0008 ACEITE & GAS 0.00491 Otro 0.009517 Transporte 0.0014 Utilidades 0.001794 COMERCIO AL POR MAYOR 0.011999 - DataZoe5 years ago
Microsoft Employee
@scheri Ok, pude hacer las dos segundas tablas, pero tienen que ser todas tablas DAX separadas, no en una como yo estaba tratando de hacer.
PASO 2 ?
COLUMNAS DE RESUMEN (
CURRENT_SRC[RPT_PRD_END_DT],
CURRENT_SRC[BRWR_RPT_RIC_SMY_DSC],
FILTRO ( CURRENT_SRC, CURRENT_SRC[MTH_CTGRY] á "M" ),
"WAPD_PCT",
SI (
SUM ( CURRENT_SRC[WAPD_DEN] ) a 0,
BLANK (),
DIVIDE ( SUM ( CURRENT_SRC[WAPD_NUM] ), SUM ( CURRENT_SRC[WAPD_DEN] ) )
)
)AVGTABLE ?
COLUMNAS DE RESUMEN (
STEP2[BRWR_RPT_RIC_SMY_DSC],
"WAPD_PCT", PROMEDIO ( STEP2[WAPD_PCT] )
)Y para @AllisonKennedy, puede que no sea la mejor manera de hacer el trabajo. El objetivo final que está buscando es ese promedio por BRWR_DSC de la WAPD_PCT que RPT_PRD_END_DT da. Esto se puede hacer en una sola medida (utilicé M porque no había Q en la tabla de muestras):
Promedio de WAPD_PCT por BRWR_DSC
AVERAGEX (
VALUES ( CURRENT_SRC[BRWR_RPT_RIC_SMY_DSC] ),
AVERAGEX (
CALCULATETABLE (
VALUES ( CURRENT_SRC[RPT_PRD_END_DT] ),
CURRENT_SRC[MTH_CTGRY] á "M"
),
DIVIDE (
ROUND ( SUM ( CURRENT_SRC[WAPD_NUM] ), 2 ),
ROUND ( SUM ( CURRENT_SRC[WAPD_DEN] ), 2 ),
BLANK ()
)
)
)Por favor, eche un vistazo al PBIX adjunto.
- Anonymous5 years agoNot applicable