March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Tengo tres tablas que rastrean cómo nuestro personal de TI pasa su tiempo durante la semana trabajando en nuevos proyectos, mantenimiento de sistemas existentes o PTO. Cada registro es para un empleado en una semana determinada. Dado que la tabla base del parte de horas tiene múltiples registros para cada persona por semana, por actividad, utilicé RESUMIR para dividirla en tres tablas para separar las columnas de horas de actividad. Necesito combinar las tres tablas en una tabla donde cada empleado tenga solo un registro por semana. Una UNIÓN de las tres tablas produce una tabla con tres filas y no es útil.
Estos son los diseños de tabla con algunos datos de ejemplo:
TABLE 1: IT Utilization Projects
[Resource Name] [Week Ending Date] [Projects Hours]
--------------- ------------------ ----------------
Serena Williams 20-MAR-2022 30.0
Rafael Nadal 20-MAR-2022 24.0
Novak Djokovic 20-MAR-2022 32.0
Serena Williams 27-MAR-2022 28.0
Rafael Nadal 27-MAR-2022 28.5
Novak Djokovic 27-MAR-2022 25.5
TABLE 2: IT Utilization Maintenance
[Resource Name] [Week Ending Date] [Maintenance Hours]
--------------- ------------------ -------------------
Serena Williams 20-MAR-2022 10.0
Rafael Nadal 20-MAR-2022 8.0
Novak Djokovic 20-MAR-2022 4.0
Serena Williams 27-MAR-2022 9.5
Rafael Nadal 27-MAR-2022 6.5
Novak Djokovic 27-MAR-2022 12.0
TABLE 3: IT Utilization PTO
[Resource Name] [Week Ending Date] [PTO Hours]
--------------- ------------------ -----------
Rafael Nadal 20-MAR-2022 8.0
Novak Djokovic 20-MAR-2022 4.0
Serena Williams 27-MAR-2022 2.5
Novak Djokovic 27-MAR-2022 2.5
*note there is no record for one person each week (Serena and Rafael)
He probado las soluciones dadas aquí en la comunidad y otros foros, pero no he podido hacer que funcione porque las tablas están relacionadas por el nombre del recurso y la fecha de finalización de la semana combinados, no por un identificador único. Podría tener esto funcionando en menos de 30 minutos en SQL, pero he estado trabajando en esto con las limitaciones de Power BI durante un par de días.
¿Cómo puedo combinar las tres tablas en una que se vea así?
DESIRED RESULTING TABLE:
[Resource Name] [Week Ending Date] [Projects Hours] [Maintenance Hours] [PTO Hours] [Total]
--------------- ------------------ ---------------- ------------------- ----------- -------
Serena Williams 20-MAR-2022 30.0 10.0 null 40.0
Rafael Nadal 20-MAR-2022 24.0 8.0 8.0 40.0
Novak Djokovic 20-MAR-2022 32.0 4.0 4.0 40.0
Serena Williams 27-MAR-2022 28.0 9.5 2.5 40.0
Rafael Nadal 27-MAR-2022 28.5 6.5 null 40.0
Novak Djokovic 27-MAR-2022 25.5 12.0 2.5 40.0
Solved! Go to Solution.
Hay @MattRasmussen ,
Pruebe la siguiente fórmula:
Table =
VAR UnionTab =
UNION (
'IT Utilization Maintenance',
'IT Utilization PTO',
'IT Utilization Projects'
)
VAR Name_Date =
DISTINCT (
SELECTCOLUMNS (
UnionTab,
"Resource Name", [Resource Name],
"Week Ending Date", [Week Ending Date]
)
)
VAR Tab =
ADDCOLUMNS (
Name_Date,
"Projects Hours",
CALCULATE (
SUM ( 'IT Utilization Projects'[Projects Hours] ),
KEEPFILTERS (
'IT Utilization Projects'[Resource Name] = EARLIER ( [Resource Name] )
),
KEEPFILTERS (
'IT Utilization Projects'[Week Ending Date] = EARLIER ( [Week Ending Date] )
)
),
"Maintenance Hours",
CALCULATE (
SUM ( 'IT Utilization Maintenance'[Maintenance Hours] ),
KEEPFILTERS (
'IT Utilization Maintenance'[Resource Name] = EARLIER ( [Resource Name] )
),
KEEPFILTERS (
'IT Utilization Maintenance'[Week Ending Date] = EARLIER ( [Week Ending Date] )
)
),
"PTO Hours",
CALCULATE (
SUM ( 'IT Utilization PTO'[PTO Hours] ),
KEEPFILTERS (
'IT Utilization PTO'[Resource Name] = EARLIER ( [Resource Name] )
),
KEEPFILTERS (
'IT Utilization PTO'[Week Ending Date] = EARLIER ( [Week Ending Date] )
)
)
)
RETURN
ADDCOLUMNS (
Tab,
"Total",
[Projects Hours] + [Maintenance Hours] + [PTO Hours]
)
Si el problema aún no se resuelve, proporcione información detallada sobre el error o el resultado esperado que espera. Hágamelo saber de inmediato, esperando su respuesta.
Saludos
Winniz
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Hay @MattRasmussen ,
Pruebe la siguiente fórmula:
Table =
VAR UnionTab =
UNION (
'IT Utilization Maintenance',
'IT Utilization PTO',
'IT Utilization Projects'
)
VAR Name_Date =
DISTINCT (
SELECTCOLUMNS (
UnionTab,
"Resource Name", [Resource Name],
"Week Ending Date", [Week Ending Date]
)
)
VAR Tab =
ADDCOLUMNS (
Name_Date,
"Projects Hours",
CALCULATE (
SUM ( 'IT Utilization Projects'[Projects Hours] ),
KEEPFILTERS (
'IT Utilization Projects'[Resource Name] = EARLIER ( [Resource Name] )
),
KEEPFILTERS (
'IT Utilization Projects'[Week Ending Date] = EARLIER ( [Week Ending Date] )
)
),
"Maintenance Hours",
CALCULATE (
SUM ( 'IT Utilization Maintenance'[Maintenance Hours] ),
KEEPFILTERS (
'IT Utilization Maintenance'[Resource Name] = EARLIER ( [Resource Name] )
),
KEEPFILTERS (
'IT Utilization Maintenance'[Week Ending Date] = EARLIER ( [Week Ending Date] )
)
),
"PTO Hours",
CALCULATE (
SUM ( 'IT Utilization PTO'[PTO Hours] ),
KEEPFILTERS (
'IT Utilization PTO'[Resource Name] = EARLIER ( [Resource Name] )
),
KEEPFILTERS (
'IT Utilization PTO'[Week Ending Date] = EARLIER ( [Week Ending Date] )
)
)
)
RETURN
ADDCOLUMNS (
Tab,
"Total",
[Projects Hours] + [Maintenance Hours] + [PTO Hours]
)
Si el problema aún no se resuelve, proporcione información detallada sobre el error o el resultado esperado que espera. Hágamelo saber de inmediato, esperando su respuesta.
Saludos
Winniz
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Gracias, eso funcionó exactamente como quería sin ningún cambio en su código. ¡Debería agregar esto a la documentación en algún lugar porque es muy útil!
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.