quote: Originally posted by thenhi Dear Sachin.NandLet me explain more cleary.I am developing a website GPS Live Tracking. I want to make a report the time speeding vehicle.EX:ID Lat Lon DateTime Speed1 - - 01:02:01 282 - - 01:02:05 603 - - 01:02:12 684 - - 01:02:24 655 - - 01:02:35 306 - - 01:02:45 357 - - 01:02:50 408 - - 01:02:55 709 - - 01:03:00 7511 - - 01:03:05 7312 - - 01:03:10 8013 - - 01:03:15 5014 - - 01:03:20 4915 - - 01:03:25 6916 - - 01:03:30 69Output save as new table:LatMin LonMin LatMax LonMax TimeMin TimeMax- - - - 01:02:05 01:02:24- - - - 01:02:55 01:03:10 - - - - 01:03:25 01:03:30Thanks,
Try thisDECLARE @Sample TABLE ( ID INT, Lat DECIMAL(9, 6), Lon DECIMAL(9, 6), [DATETIME] TIME(0), Speed TINYINT )INSERT @SampleVALUES ( 1, NULL, NULL, '01:02:01', 28), ( 2, NULL, NULL, '01:02:05', 60), ( 3, NULL, NULL, '01:02:12', 68), ( 4, NULL, NULL, '01:02:24', 65), ( 5, NULL, NULL, '01:02:35', 30), ( 6, NULL, NULL, '01:02:45', 35), ( 7, NULL, NULL, '01:02:50', 40), ( 8, NULL, NULL, '01:02:55', 70), ( 9, NULL, NULL, '01:03:00', 75), (11, NULL, NULL, '01:03:05', 73), (12, NULL, NULL, '01:03:10', 80), (13, NULL, NULL, '01:03:15', 50), (14, NULL, NULL, '01:03:20', 49), (15, NULL, NULL, '01:03:25', 69), (16, NULL, NULL, '01:03:30', 69);WITH cteAS ( SELECT ID, Lat, Lon, [DATETIME], Speed, ROW_NUMBER() OVER (ORDER BY ID) AS SeqID, ROW_NUMBER() OVER (PARTITION BY CASE WHEN Speed >= 50 THEN 1 ELSE 0 END ORDER BY ID) AS GrpID FROM @Sample)SELECT MIN([DATETIME]), MAX([DATETIME])FROM cteGROUP BY SeqID - GrpIDHAVING MAX(Speed) >= 50ORDER BY SeqID - GrpID N 56°04'39.26"E 12°55'05.63" |