Autor Zpráva
embrio
Profil
AHoj, programuju jednoduchou docházku a dostal jsem se nad moje možnosti.
Potřebuju sečíst odpracované časy v daném intervalu u konkrétního uživatele. V mySql mám odpracované hodiny uloženy ve formátu TIME, potřebuju vypsat po dnech odpracované hodiny a nakonec zobrazit součet. Bohužel se mi daří buď jen vypsat součet časů (a pak se mi zobrazuje jen jeden řádek) nebo vypsat časy, ale nesčítají se mi (nebo špatně). Dotaz mám takovýhle:

"SELECT timetable_date, timetable_hours, sec_to_time(SUM(time_to_sec(timetable_hours))) AS hours FROM cu_user_timetable
          WHERE timetable_user_id = '1'
          AND timetable_date >= '$zacatek' AND timetable_date <= '$konec'
          ORDER BY timetable_date ASC"
Alphard
Profil
Jak přesně vypadá ta tabulka? Jestli máte u každého záznamu datum (timetable) a jednotlivé záznamy se nepřekrývají, mělo by stačit seskupit to (group by) podle data. Ten konečný součet bych řešil až v aplikaci sečtením dílčích součtů.
Kajman
Profil
Jde to sečíst i v dotaze, ale také bych to řešil až v aplikační vrstvě.
SELECT timetable_date,
       Sec_to_time(Sum(Time_to_sec(timetable_hours))) AS hours
FROM   cu_user_timetable
WHERE  timetable_user_id = '1'
       AND timetable_date >= '$zacatek'
       AND timetable_date <= '$konec'
GROUP BY timetable_date WITH ROLLUP

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0