Suma de datos de 2 meses y para mostrar los datos del último mes, top 50

programación


Tengo una tabla que contiene número de pieza, ubicación, col1, col2, medida1, medida2, medida3. Según Measure3, debe mostrar los 100 registros principales.

La cosa es que la tabla carga dos meses de datos. por ej. carga de datos enero + febrero. según el número de pieza, la ubicación y, si hay registros duplicados, se debe tomar el registro más reciente. en consulta SQL funcionando. en consulta SQL suma de datos de dos meses, es decir. jan =dic+jan, feb =feb+jan, clasificándolos y tomando el puesto 1. de esta manera obteniendo el último registro. Cómo se logra en power bi usando dax. sin tabla o columna de fechas. teniendo meso. por ejemplo: nov2023=23, diciembre2023=24, enero2024=25, febrero2024=26, marzo2024=27 y así sucesivamente.

tener rebanadoras número de parte, ubicación. y en la tabla debe mostrar el número de serie del 1 al 100 para esos registros.

Lo que he probado:

medida creada para mostrar el top 50. Está bien, pero lo necesario es obtener el registro más reciente.

Solución 1

Realmente necesita cambiar su base de datos para lograr esto de una manera significativa: almacenar datos basados ​​en fechas en cadenas siempre es una mala idea y las comparaciones de cadenas siempre se basan en el primer par diferente de caracteres; los siguientes ni siquiera se miran. Entonces el orden sería:

apr2022
apr2023
aug2022
aug2023
dec2022
dec2023
feb2022
feb2023
jan2022
jul2022
jul2023
jun2022
jun2023
mar2022
mar2023
may2022
may2023
nov2022
nov2023
oct2022
oct2023
sep2022
sep2023

Lo cual es bastante inútil.

Si bien es posible hacerlo, requiere mucho esfuerzo y suerte: el nombre de un mes en francés o alemán arruinará su código, por ejemplo.

La función CAST te permitirá hacerlo:

SQL
CAST('oct2023' AS DATE)

Le daré el 2023-10-01, pero agregará mucho procesamiento y complejidad a sus consultas (todas ellas) y aún así no le brindará los pedidos que necesita dentro de cada mes porque sus datos no los contienen: todas las fechas serán el primero del mes. Y afectará el rendimiento y aumentará el número de filas.

Como mínimo, agregue una columna de marca de tiempo (DATETIME o DATETIME2) a su base de datos y establezca de forma predeterminada la hora de inserción (en UTC de preferencia) y utilícela en lugar de la basura basada en cadenas que tiene actualmente.

コメント

タイトルとURLをコピーしました