The below script shows time spent by technicians on projects.
I want to modify it to only show data from this (Current) month.
SELECT pd.projectid "Project ID", pd.title "Title", pd.projectcode "Project Code", aa.first_name "Technician", CASE WHEN temp.wsum > 0 THEN CONCAT(COALESCE(TRUNC(sum(temp.wsum)/3600000,0)),' Hrs ',COALESCE(MOD(TRUNC(sum(temp.wsum)/60000,0),60),0),' Mins') ELSE CONCAT(COALESCE(TRUNC(sum(temp.tsum)/3600000,0),0),' Hrs ',COALESCE(MOD(TRUNC(sum(temp.tsum)/60000,0),60),0),' Mins') END "Actual Time Spent" FROM (SELECT pm.projectid AS pid, pm.userid AS puid, (SELECT sum(ch.timespent) chts FROM TaskToProjects ttp LEFT JOIN TaskToCharge ttc ON ttp.taskid=ttc.taskid LEFT JOIN ChargesTable ch ON ttc.chargeid=ch.chargeid WHERE ch.technicianid = pm.userid AND ttp.projectid = pm.projectid) AS wsum, (SELECT sum(CASE WHEN (td.actualendtime IS NULL AND td.actualstarttime IS NOT NULL) THEN (extract(epoch FROM date_trunc('milliseconds', now()))
* 1000 - td.actualstarttime) WHEN (td.actualendtime IS NOT NULL AND td.actualstarttime IS NOT NULL) THEN (td.actualendtime - td.actualstarttime) END) :: bigint FROM taskdetails td LEFT JOIN TaskToProjects ttp ON td.taskid=ttp.taskid WHERE ttp.projectid = pm.projectid AND td.ownerid = pm.userid) AS tsum FROM ProjectMembers pm) TEMP LEFT JOIN AaaUser aa ON aa.user_id = TEMP.puid LEFT JOIN ProjectDetails pd ON TEMP.pid=pd.projectid group by pd.projectid,aa.first_name,temp.wsum order by 2