Hiho! Ich habe hier Daten in einer MYSQL Tabelle, die kommen aus einer Telefonmaschine. Die Tabelle hat folgende (für diesen Fall wichtige) Felder: datum, anrufzeitpunkt (hh:mm:ss), dauer (in Sekunden), team
Nun möchte ich berechnen wieviele Leitungen belegt waren. Belegt ist eine Leitung ab anrufzeitpunkt bis anrufzeitpunkt+dauer.
Gibt es eine Möglichkeit dies in Mysql zu bewerkstelligen?
Ich habe schon einiges versucht, dass hier ist mein letzter Versuch, wobei das JOIN nicht richtig passt. :( Er verknüpft zu viele Daten. In der Tabelle zahlen stehen einfach nur die Zahlen von 1 bis 3.000.000 damit ich jede Sekunde eines Monats abdecken kann. Hat jemand eine Idee?
SELECT
datum, zeit_leitungen, leitungen
FROM (
SELECT
date_format(date_add('2015-04-01 00:00',INTERVAL nummern-1 SECOND),'%Y-%m-%d') as tag,
date_add('2015-04-08 00:00',INTERVAL nummern-1 SECOND) as zeit_leitungen,
SUM(IF(anrufzeitpunkt<=date_add('2015-04-01 00:00',INTERVAL nummern-1 SECOND) AND (anrufzeitpunkt+dauer)>=date_add('2015-04-01 00:00',INTERVAL nummern-1 SECOND),1,0)) as leitungen
FROM
zahlen
JOIN anrufdaten ON (
datum=date_format(date_add('2015-04-01 00:00',INTERVAL nummern-1 SECOND),'%Y-%m-%d')
AND
anrufzeitpunkt<=date_add('2015-04-01 00:00',INTERVAL nummern-1 SECOND)
AND
(anrufzeitpunkt+dauer)>=date_add('2015-04-01 00:00',INTERVAL nummern-1 SECOND)
)
WHERE
nummern>=1
AND
nummern<=(86400*9)
AND
datum>='2015-04-01'
AND
datum<='2015-04-09'
GROUP BY zeit_leitungen
) as leitungen