Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Anonymous
Not applicable

Diferencia de fecha entre fechas de varias tablas

Hola

Tengo 2 tablas (Pedidos, Tareas) con relación De varios a varios y Filtro de dirección única, de Tareas>Pedidos.

Necesito calcular la diferencia entre la fecha de pedido y la fecha de tarea. He estado usando Datediff y Calculate, pero no he conseguido resultados correctos. ¿Alguien puede ayudarme con eso?

Tabla de pedidos

ID de pedidoID de usuarioProductoFecha del pedidoEstado del pedido
12689105Prod 110/6/2020Completado
22689105

Prod 2

10/1/2020Cancelado
31052689Prod 39/6/2020Completado
45268910Prod 47/12/2020Completado

Tabla de tareas

ID de tareaID de usuarioTipo de tareaFecha de tarea
12689105Tipo 110/5/2020

2

2689105Tipo 29/18/2020
3 1052689Tipo 17/20/2020
45268910Tipo 28/12/2020
55268910Tipo 110/1/2020
64356744Tipo 1

6/25/2020

El campo Clave es "ID de usuario". Las fechas de pedido también se filtran por un conjunto de productos, en este ejemplo "Prod 1" y "Prod 3", y la tabla tareas se filtra por tipo de tarea, en este ejemplo "Tipo 1".

Resultado esperado

ID de pedidoID de usuarioProductoFecha del pedidoFecha de tareaDatediffEstado del pedido
12689105Prod 110/6/202010/5/20201 díaCompletado
31052689Prod 39/6/20207/20/202048 díasCompletado

¡Gracias!

1 ACCEPTED SOLUTION

Hola @9G,

Primero cree 3 tablas de segmentación como se muestra a continuación:

ID slicer = VALUES('Tasks Table'[User ID])
Product slicer = VALUES('Orders Table'[Product])
Type slicer = VALUES('Tasks Table'[Task Type])

A continuación, cree 4 medidas como se indica a continuación:

_Product = CALCULATE(MAX('Orders Table'[Product]),'Orders Table'[Product] in FILTERS('Product slicer'[Product]))
_User ID = CALCULATE(MAX('Orders Table'[User ID]),'Orders Table'[User ID] in FILTERS('ID slicer'[User ID]))
_Task date = CALCULATE(MAX('Tasks Table'[Task Date]),FILTER('Tasks Table','Tasks Table'[User ID]=[_User ID]&&'Tasks Table'[Task Type] in FILTERS('Type slicer'[Task Type])))
_Diff = 
var _diff= DATEDIFF([_Task date],MAX('Orders Table'[Order Date]),DAY)
Return
IF(_diff<=1,_diff&" day",_diff&" days")

Y verás:

Screenshot 2020-10-16 105053.png

Para el archivo .pbix relacionado, pls ver adjunto.

Saludos
Kelly

¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!

View solution in original post

4 REPLIES 4
v-kelly-msft
Community Support
Community Support

Hola @9G ,

¿Por qué no hay datos sobre 5268910 en el resultado esperado? ¿Cómo hacer coincidir "Producto" y "Tipo de tarea"?

Saludos
Kelly

¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!

Anonymous
Not applicable

@v-kelly-msft como los datos tienen los filtros, básicamente 5268910 se excluye por el filtro, por lo tanto, el resultado contendrá valores en blanco para la diferencia de fecha.

Hola @9G,

Primero cree 3 tablas de segmentación como se muestra a continuación:

ID slicer = VALUES('Tasks Table'[User ID])
Product slicer = VALUES('Orders Table'[Product])
Type slicer = VALUES('Tasks Table'[Task Type])

A continuación, cree 4 medidas como se indica a continuación:

_Product = CALCULATE(MAX('Orders Table'[Product]),'Orders Table'[Product] in FILTERS('Product slicer'[Product]))
_User ID = CALCULATE(MAX('Orders Table'[User ID]),'Orders Table'[User ID] in FILTERS('ID slicer'[User ID]))
_Task date = CALCULATE(MAX('Tasks Table'[Task Date]),FILTER('Tasks Table','Tasks Table'[User ID]=[_User ID]&&'Tasks Table'[Task Type] in FILTERS('Type slicer'[Task Type])))
_Diff = 
var _diff= DATEDIFF([_Task date],MAX('Orders Table'[Order Date]),DAY)
Return
IF(_diff<=1,_diff&" day",_diff&" days")

Y verás:

Screenshot 2020-10-16 105053.png

Para el archivo .pbix relacionado, pls ver adjunto.

Saludos
Kelly

¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!

amitchandak
Super User
Super User

@9G , Debe tener una tabla de ID de usuario común.

Entonces usted puede tener

datediff(min(orders[Order Date]), max(Tasks[task Date]), Day)

recomienda

https://community.powerbi.com/t5/Community-Blog/Decoding-Direct-Query-in-Power-BI-Part-2-Date-Differ...

Proporcione sus comentarios y consejos para nuevos videos
Tutorial Series Dax Vs SQL Direct Query PBI Consejos
Apreciamos tus Felicitaciones.

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.