Forum Discussion
aavilap
8 years agoHelper I
Calculate driving time between 2 data points
Hello! I've been having a hard time trying to figure out how to calculate the time between two data points within my database, hope you guys can help! My data looks as follows: ID User ID St...
- 8 years ago
So here is a measure that will return the driving time to a spot from the previous spot in minutes. It will return a BLANK() if the previous spot was checked out from on a previous day.
DriveTime = VAR DT = DATEDIFF ( MAXX ( FILTER ( ALLSELECTED ( Driving ), Driving[ID User] = MAX ( Driving[ID User] ) && Driving[Check Out] < MAX ( Driving[Check In] ) ), Driving[Check Out] ), MAX ( Driving[Check In] ), DAY ) VAR DM = DATEDIFF ( MAXX ( FILTER ( ALLSELECTED ( Driving ), Driving[ID User] = MAX ( Driving[ID User] ) && Driving[Check Out] < MAX ( Driving[Check In] ) ), Driving[Check Out] ), MAX ( Driving[Check In] ), MINUTE ) RETURN IF ( DT = 0, DM, BLANK () )
erik_tarnvik
8 years agoSolution Specialist
So here is a measure that will return the driving time to a spot from the previous spot in minutes. It will return a BLANK() if the previous spot was checked out from on a previous day.
DriveTime =
VAR DT =
DATEDIFF (
MAXX (
FILTER (
ALLSELECTED ( Driving ),
Driving[ID User] = MAX ( Driving[ID User] )
&& Driving[Check Out] < MAX ( Driving[Check In] )
),
Driving[Check Out]
),
MAX ( Driving[Check In] ),
DAY
)
VAR DM =
DATEDIFF (
MAXX (
FILTER (
ALLSELECTED ( Driving ),
Driving[ID User] = MAX ( Driving[ID User] )
&& Driving[Check Out] < MAX ( Driving[Check In] )
),
Driving[Check Out]
),
MAX ( Driving[Check In] ),
MINUTE
)
RETURN
IF ( DT = 0, DM, BLANK () )Gwin
8 years agoRegular Visitor
Dear Erik
Can you please help?
I have generated DriveTime from the function below:
DriveTime =
VAR DT =
DATEDIFF (
MAXX (
FILTER (
ALLSELECTED ( Driving ),
Driving[ID User] = MAX ( Driving[ID User] )
&& Driving[Check Out] < MAX ( Driving[Check In] )
),
Driving[Check Out]
),
MAX ( Driving[Check In] ),
DAY
)
VAR DM =
DATEDIFF (
MAXX (
FILTER (
ALLSELECTED ( Driving ),
Driving[ID User] = MAX ( Driving[ID User] )
&& Driving[Check Out] < MAX ( Driving[Check In] )
),
Driving[Check Out]
),
MAX ( Driving[Check In] ),
MINUTE
)
RETURN
IF ( DT = 0, DM, BLANK () )
I am getting this Error Message:
MdxScript(Model) (5, 5) Calculation error in measure 'Driving'[DriveTime]: In DATEDIFF function, the start date cannot be greater than the end date
My data is
| ID User | ID Store | Check In | Check Out | Time Diff |
| 1 | A | 10/18/2017 9:15 | 10/18/2017 9:58 | 0:43:12 |
| 1 | B | 10/18/2017 10:56 | 10/18/2017 11:32 | 0:36:00 |
| 1 | C | 10/18/2017 12:29 | 10/18/2017 13:20 | 0:50:24 |
| 1 | D | 10/18/2017 14:17 | 10/18/2017 15:22 | 1:04:48 |
| 1 | W | 10/19/2017 9:05 | 10/19/2017 9:26 | 0:21:36 |
| 1 | X | 10/19/2017 10:24 | 10/19/2017 11:50 | 1:26:24 |
| 1 | Y | 10/19/2017 12:48 | 10/19/2017 13:45 | 0:57:36 |
| 1 | Z | 10/19/2017 14:43 | 10/19/2017 15:29 | 0:46:05 |
Thank you in advance
Gwin