"TIME_TO_SEC(TIMEDIFF(MAX(d.bis) , MIN(d.von))) AS sek" zeigt einen Datensatz an

Commu

Mitglied
Moin moin an die Gemeinde,

ich wollte mir eine Differenz von zwei Zeitangaben in Sekunden anzeigen Lassen:

TIME_TO_SEC(TIMEDIFF(MAX(d.bis) , MIN(d.von))) AS sek

Zum Problem:

ich habe mir das Statement Stück für Stück auf gebaut -

SELECT e.ma_id,e.vname,e.nname,d.von,d.bis,
***
c.projekt_id,c.taetigkeit_id​
FROM tbl_proj_plan_schi_maa
LEFT JOIN tbl_proj_plan_schichtenb
ON a.pps_id=b.id
LEFTJOIN tbl_proj_planungc
ON b.pp_id=c.id
LEFT JOIN tbl_prod_schichtd
ON b.schicht_id=d.id
LEFT JOIN tbl_mitarbeitere
ON a.ma_id=e.ma_id
WHERE b.schicht_id=2
AND a.datum='2015-01-14'
AND '2015-04-14' BETWEEN a.valid_from AND a.valid_util
AND '2015-04-14' BETWEEN b.valid_from AND b.valid_util
AND '2015-04-14' BETWEEN c.valid_from AND c.valid_util​

bis hier hin habe ich 12 Einträge (ohne die Sterne natürlich)

setze ich dann aber TIME_TO_SEC bei den Sternen ein (natürlich mit Komma am Ende)
bekomme ich nur einen Datensatz zurück.

Irgendwie habe ich 12 erwartet???????

Gib es da ein Wundermittel?

Danke für die Hilfe Gruß Jörg

MYSQL
 
Zuletzt bearbeitet von einem Moderator:
Hi,

mit deinem TIMEDIFF Teil gruppierst du deine Datensätze (MAX, MIN). Somit kommen dann nicht mehr 12, sondern nur noch einer zurück.
Was willst du genau erreichen?
Wie sieht dein DD-Model der Tabelle aus? (Reduzier das ganze bitte auf eine Tabelle)
Kannst du uns ein paar Beispieldatensätze geben?
Wie sollte da das Ergebnis ausschauen?

Gerne auch gleich direkt über http://sqlfiddle.com/ eintragen und den Link hier posten. So können wir schneller experimentieren :)

Grüsse,
BK
 
Zurück