Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreGet certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now
Buenos días,
Necesito ayuda con lo siguiente:
Tengo dos tablas:
1. Tabla FICHAJES: reúne los fichajes de cada trabajador.
2. Tabla CALENDAR: calendario.
Relaciones: FICHAJES[Fecha fichaje] está relacionada con CALENDAR[Date].
Necesito obtener los días que cada trabajador no ha fichado. Por ejemplo:
Maria ---> no ha fichado el 29/03/2023
Carla ---> no ha fichado el 20/03/2023
Eduardo ---> no ha fichado el 18/03/2023
*** Cuando un trabajador no ficha, en FICHAJES[Fecha fichaje] no se registra la fecha.
Podéis ayudarme, por favor?
Gracias!
Para obtener los días que cada trabajador no ha firmado, puede seguir estos pasos:
Cree una consulta que una la tabla SIGNINGS con la tabla CALENDAR mediante la relación entre FILES[Date Signing] y CALENDAR[Date].
Utilice un LEFT JOIN para incluir todas las fechas en la tabla CALENDAR, independientemente de si hay un registro correspondiente en la tabla SIGNINGS.
Agregue un campo calculado a la consulta que determine si se ha producido una firma en un día determinado. Este campo puede utilizar la función IIf() para comprobar si hay un valor en FILES[Fecha registrada] para el trabajador y la fecha determinados.
Agrupe la consulta por trabajador y fecha, y utilice la función SUM() para contar el número de firmas que se produjeron en cada día.
Utilice una cláusula WHERE para filtrar los resultados para incluir solo los días en los que no se ha producido ninguna firma.
Dé formato a los resultados de la consulta para mostrar el nombre del trabajador y las fechas en que no firmó.
Este es un ejemplo de código SQL para esta consulta:
SELECCIONA FICHAJES. Trabajador, CALENDARIO. Fecha
DESDE CALENDARIO A LA IZQUIERDA ÚNETE A LOS FICHAJES EN EL CALENDARIO. Fecha = FICHAJES. [Fecha de firma]
AGRUPAR POR FICHAJES. Trabajador, CALENDARIO. Fecha
TENER SUMA(IIf(ISNULL(ARCHIVOS.[ Fecha de registro]), 0, 1)) = 0
Esta consulta devolverá el nombre del trabajador y las fechas en las que no se produjo ninguna firma.
He hecho un modelo de prueba para la misma casuística.
En la tabla que adjunto, puedes ver que Maria no ha fichado el 30/03/2023.
Necesitaría tener una tabla donde hubiera 3 columnas: la columna de calendar, la columna de usuario y la columna de la fecha de fichaje.
Osea no sé como hacer que, por mucho que Maria no haya fichado, me cree un registro en blanco, por ejemplo necesitaría algo así:
Gracias y un saludo!
@Syndicate_Admin disculpa, pero llevo poco tiempo usando Power BI y no entiendo muy bien qué es lo que se tiene que hacer...
He hecho lo siguiente:
1. He combinado la tabla CALENDAR con la tabla FICHAJES con LEFT JOIN. Ahora tengo dos columnas tipo Fecha y una columna con los usuarios.
No voe como continuar, no lo entiendo.
Hola @Syndicate_Admin ,
Prueba esto
Measure= CALCULATE ( COUNTROWS ( ARCHIVOS ), FILES[Fecha de registro] = EN BLANCO () )
Si respondí a su pregunta, marque mi publicación como solución, aprecie sus felicitaciones 👍
@Syndicate_Admin el problema es que cuando no fichan, no se crea ninguna fila, por lo que tampoco existen blanks.
Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.