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 () )- aavilap8 years agoHelper I
erik_tarnvik Thanks! It worked just perfectly!
- Gwin8 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