Click here to Skip to main content
15,890,690 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
HI,

i have a table with data as below,


 VRS_DEVICEID          VRS_UTCTIME                    VRS_SPEED    VRS_LOCATION
-------------          -----------                    ---------    -------------

 ST0001                2012-07-02 10:59:26.000        0.36         attigal
 ST0001                2012-07-02 11:33:36.000        40           tvm
 ST0001                2012-09-06 18:45:29.000        0.26         malappuram
 ST0001                2012-09-06 19:46:28.000        0.36         kozhikode
 ST0001                2012-10-09 12:10:12.000        50           idukki
 ST0001                2012-10-09 01:12:12.000        40           vayanadu


the sql statement,

SQL
 SELECT CONVERT(VARCHAR(10), VRS_UTCTIME, 121) AS [Date],
MIN(SUBSTRING(CONVERT(VARCHAR(23), VRS_UTCTIME, 121), 12,20)) AS [start_time],
MAX(SUBSTRING(CONVERT(VARCHAR(23), VRS_UTCTIME, 121), 12,20)) AS [stop_time],
MAX(VRS_SPEED) AS [max_speed]
FROM STS_VEHICLE_RUNNING_STATUS
WHERE VRS_DEVICEID = 'ST0001' AND  VRS_UTCTIME BETWEEN '2012-07-02' AND '2012-11-09'
GROUP BY CONVERT(VARCHAR(10), VRS_UTCTIME, 121)


retrieve data from table as below,


Date            start_time         stop_time    max_speed
 ----              ----------     ---------       ---------
 2012-07-02        10:59:26.000    11:33:36.000      40

 2012-09-06        18:45:29.000   19:46:28.000      0.36

 2012-10-09        12:10:12.000    01:12:12.000      50


But, i want to retrieve the location column with the result.That is,
retrieve the location at max_speed value as below

Date            start_time         stop_time    max_speed    location
 ----              ----------     ---------       ---------  --------
 2012-07-02        10:59:26.000    11:33:36.000      40       tvm

 2012-09-06        18:45:29.000   19:46:28.000      0.36      kozhikode

 2012-10-09        12:10:12.000    01:12:12.000      50       idukki


Then how to write sql statement?

plz help me...

Thanks...>

[edit]Code block added - OriginalGriff[/edit]
Posted
Updated 17-Nov-12 1:12am
v2

SQL
SELECT CONVERT(time,VRS_UTCTIME) FROM  STS_VEHICLE_RUNNING_STATUS



above code is for sql 2008 for example to solve your problem
 
Share this answer
 
Comments
MT_ 19-Nov-12 0:59am    
Did you read the question ?
The following query gives the result you want:
SQL
SELECT T1.Date, T2.start_time, T2.stop_time, T2.max_speed, T1.location
FROM

(SELECT CONVERT(VARCHAR(10), VRS_UTCTIME, 121) AS [Date],
	VRS_SPEED AS [speed],
        VRS_LOCATION AS [location]
   FROM STS_VEHICLE_RUNNING_STATUS
  WHERE VRS_DEVICEID = 'ST0001'
    AND VRS_UTCTIME BETWEEN '2012-07-02' AND '2012-11-09') AS T1

JOIN

(SELECT  CONVERT(VARCHAR(10), VRS_UTCTIME, 121) AS [Date],
         MIN(SUBSTRING(CONVERT(VARCHAR(23), VRS_UTCTIME, 121), 12,20)) AS [start_time],
         MAX(SUBSTRING(CONVERT(VARCHAR(23), VRS_UTCTIME, 121), 12,20)) AS [stop_time],
         MAX(VRS_SPEED) AS [max_speed]
   FROM  STS_VEHICLE_RUNNING_STATUS
  WHERE  VRS_DEVICEID = 'ST0001'
    AND  VRS_UTCTIME BETWEEN '2012-07-02' AND '2012-11-09'
GROUP BY CONVERT(VARCHAR(10), VRS_UTCTIME, 121)) AS T2

ON T1.Date = T2.Date AND T1.speed = T2.max_speed
 
Share this answer
 
Comments
Maciej Los 19-Nov-12 11:20am    
Great work! +5!
anil.luck 19-Nov-12 12:28pm    
@André Kraak
Excellent job

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900