SELECT tt.*, IF(tt.general_time_flag=1,'project','task') AS time_type, IF(tt.general_time_flag=1,pr.project_name,tk.task_title) AS time_name, tt.time_id, IF(tt.general_time_flag=1,pr.hourly_rate,tk.fee) AS time_rate, ROUND(IF(tt.general_time_flag=1,pr.hourly_rate,tk.fee)*IFNULL(SUM(TIME_TO_SEC(TIMEDIFF(IF(tt.end_time='0000-00-00 00:00:00',now(),tt.end_time), tt.start_time)))/3600,0),2) AS total_fee, SUM(TIME_TO_SEC(TIMEDIFF(IF(tt.end_time='0000-00-00 00:00:00',now(),tt.end_time), tt.start_time)))/3600 AS total_time, IF(tt.end_time='0000-00-00 00:00:00','started','stopped') AS status, IF(tt.end_time='0000-00-00 00:00:00','dark-green','light-red') AS status_colour FROM time_tracker AS tt LEFT JOIN tasks AS tk ON tt.element_id = tk.task_id AND tt.element_type=2 LEFT JOIN projects AS pr ON tt.element_id = pr.project_id AND tt.element_type=1 WHERE tt.user_id = '##user_id##' AND (pr.project_id='##project_id##' OR tk.project_id='##project_id##') ##narrow_by## GROUP BY tt.time_id ORDER BY start_time DESC ##LIMIT##