MySQL Zeitberechnung zwischen records

mapntrack

Grünschnabel
Hallo ich habe folgende Abfrage:

Code:
SELECT

     device.`description` as description,
     eventdata.`timestamp` AS timestmp,
     FROM_UNIXTIME(eventdata.`timestamp`, '%m %d') AS tsdate,
     FROM_UNIXTIME(eventdata.`timestamp`, '%h:%m:%s') AS tstime,
     FROM_UNIXTIME(eventdata.`timestamp`, '%m %d %Y %h:%m:%s') AS tstimest,
     eventdata.`statusCode` AS statusCode,
     
     CASE 	     WHEN eventdata.statusCode = 61715
                     
                     THEN 'Start'
  
                     WHEN eventdata.statusCode = 61713
   
                     THEN  'Stop'
                     
                     WHEN eventdata.statusCode = 61472
                        
                     THEN  'Location'
  
                     ELSE 'unknown'
   
      END AS  statuscodedes 
FROM
     `eventdata` eventdata,
     `device` device,
     `account` account

WHERE eventdata.`timestamp` > UNIX_TIMESTAMP('2009-05-12')
AND   ((eventdata.`statusCode` = '61713') or (eventdata.`statusCode` = '61715'))
AND   eventdata.`accountID` = 'rsm'

AND   eventdata.`accountID` = device.`accountID`
AND   eventdata.`accountID` = `account`.`accountID`
AND   eventdata.`deviceID`  = `device`.`deviceID`
ORDER BY description ASC,  tstimest ASC;

Die Abfrage ergibt folgendes Ergebniss:

description timestmp tsdate tstime tstimest statusCode statuscodedes
Bagger1 1242089555 05 12 02:05:35 05 12 2009 61713 Stop
Bagger1 1242090066 05 12 03:05:06 05 12 2009 61715 Start
Bagger1 1242090666 05 12 03:05:06 05 12 2009 61715 Start
Bagger1 1242092709 05 12 03:05:09 05 12 2009 61715 Start
Bagger1 1242092113 05 12 03:05:13 05 12 2009 61713 Stop
Bagger1 1242091455 05 12 03:05:15 05 12 2009 61713 Stop
Bagger1 1242091461 05 12 03:05:21 05 12 2009 61715 Start
Bagger1 1242090501 05 12 03:05:21 05 12 2009 61715 Start
Bagger1 1242091043 05 12 03:05:23 05 12 2009 61713 Stop
Bagger1 1242091047 05 12 03:05:27 05 12 2009 61715 Start
Bagger1 1242090463 05 12 03:05:43 05 12 2009 61713 Stop
Bagger1 1242090650 05 12 03:05:50 05 12 2009 61713 Stop
Bagger1 1242103797 05 12 06:05:57 05 12 2009 61713 Stop
Bagger1 1242104554 05 12 07:05:34 05 12 2009 61715 Start
Bagger1 1242110774 05 12 08:05:14 05 12 2009 61715 Start
Bagger1 1242109293 05 12 08:05:33 05 12 2009 61713 Stop
Bagger2 1242093841 05 12 04:05:01 05 12 2009 61715 Start
Bagger2 1242093733 05 12 04:05:13 05 12 2009 61713 Stop
Bagger2 1242095961 05 12 04:05:21 05 12 2009 61715 Start
Bagger2 1242095974 05 12 04:05:34 05 12 2009 61713 Stop
Bagger2 1242095503 05 12 04:05:43 05 12 2009 61713 Stop
Bagger2 1242095993 05 12 04:05:53 05 12 2009 61715 Start
Bagger2 1242098292 05 12 05:05:12 05 12 2009 61713 Stop
Bagger2 1242099255 05 12 05:05:15 05 12 2009 61715 Start
Bagger2 1242100423 05 12 05:05:43 05 12 2009 61713 Stop
Bagger2 1242103575 05 12 06:05:15 05 12 2009 61715 Start
Bagger2 1242103827 05 12 06:05:27 05 12 2009 61713 Stop
Bagger2 1242102570 05 12 06:05:30 05 12 2009 61713 Stop
Bagger2 1242102351 05 12 06:05:51 05 12 2009 61715 Start
Bagger2 1242106229 05 12 07:05:29 05 12 2009 61713 Stop
Bagger2 1242105816 05 12 07:05:36 05 12 2009 61715 Start
Bagger2 1242109841 05 12 08:05:41 05 12 2009 61715 Start
Bagger2 1242109965 05 12 08:05:45 05 12 2009 61713 Stop
Bagger2 1242112500 05 12 09:05:00 05 12 2009 61713 Stop
Bagger2 1242111681 05 12 09:05:21 05 12 2009 61715 Start


Das gewünschte Resultat sollte so aussehen:

Tag Montag 06.10.08
Fahrzeug: Bagger1
Pos Start Stop Saldo Decimal
1 06:12 07:12 01:00 1,00h
2 07:14 12:00 04:46 4,76h
3 13:00 17:00 04:00 4,00h
Gesamt 09:46 9,76h

Fahrzeug: Bagger2
Pos Start Stop Saldo Decimal
1 08:12 09:12 01:00 1,00h
2 09:14 14:00 04:46 4,76h
3 15:00 17:00 02:00 2,00h
Gesamt 07:46 7,76h

Wie kann ich mit MySQL (5.1) differenzen zwischen Records Start - Stop berechnen?

Wie kann ich die Summary Row je Fahrzeug berechnen, und die Ausgabe dementsprechend aufbauen?

Danke im voraus!
 
Hallo Danke für die rasche Antwort:

Ich muss die gesamte Logik in SQL Handeln, da es sich um ein Reporting System handelt.

PHP Verwenden wir nicht!

Die Kalkulation bekomme ich wahrscheinlich hin - aber wie berechne ich werte von Record1 + Record 2?
 
Zurück