+" to_char(to_date(work_date), 'YYYYMM') AS period,\r\n"
+" so_hq,\r\n"
+" work_date,\r\n"
+" MIN(start_time) AS start_time,\r\n"
+" MAX(end_time) AS end_time,\r\n"
+" ( MAX(end_time) - MIN(start_time) ) AS time_spent,\r\n"
+" (\r\n"
+" SELECT\r\n"
+" nvl(SUM(a.noof_doct), 0)\r\n"
+" FROM\r\n"
+" dr_doctor_visit a,\r\n"
+" dr_main b\r\n"
+" WHERE\r\n"
+" a.sales_pers = b.sales_pers\r\n"
+" AND a.work_date = b.work_date\r\n"
+" AND a.sc_type = 'N'\r\n"
+" AND b.confirmation_flag = 'Y'\r\n"
+" AND a.sales_pers = data1.sales_pers\r\n"
+" AND a.work_date = data1.work_date\r\n"
+" ) AS non_listed_call\r\n"
+" FROM\r\n"
+" data1\r\n"
+" GROUP BY\r\n"
+" sales_pers,\r\n"
+" work_date,\r\n"
+" so_hq,\r\n"
+" to_char(to_date(work_date), 'YYYYMM')\r\n"
+" ),\r\n"
+" missed_call AS (\r\n"
+" SELECT\r\n"
+" sales_pers,\r\n"
+" (SELECT SUM(strg_series.no_visit) FROM STRG_SERIES WHERE SALES_PERS=A.SALES_PERS AND STATUS='Y') AS no_visit,\r\n"
+" SUM(actual_visit) AS actual_visit,\r\n"
+" (SELECT SUM(\r\n"
+" CASE\r\n"
+" WHEN SUM(DR_DOCTOR_VISIT.NOOF_DOCT) > MAX(DR_DOCTOR_VISIT.NO_VISIT+1)\r\n"
+" THEN SUM(DR_DOCTOR_VISIT.NOOF_DOCT) -MAX(DR_DOCTOR_VISIT.NO_VISIT+1) \r\n"
+" ELSE 0\r\n"
+" END) AS EXCESS_VST\r\n"
+" FROM DR_DOCTOR_VISIT,prd\r\n"
+" WHERE DR_DOCTOR_VISIT.SALES_PERS = a.sales_pers\r\n"
+" AND DR_DOCTOR_VISIT.WORK_DATE >= prd.fr_date\r\n"
+" AND DR_DOCTOR_VISIT.WORK_DATE <= prd.to_date\r\n"
+" AND DR_DOCTOR_VISIT.SC_CODE < 'ZZZZZZZZZZ'\r\n"
+" AND DR_DOCTOR_VISIT.SC_TYPE = 'C'\r\n"
+" AND DDF_SMKT_GEN_DET(DR_DOCTOR_VISIT.SALES_PERS,NULL,DR_DOCTOR_VISIT.WORK_DATE,NULL,'DAR_CONF_FLAG') = 'Y'\r\n"
+" GROUP BY DR_DOCTOR_VISIT.SC_CODE) as excess_visit,\r\n"
+" \r\n"
+" nvl((\r\n"
+" SELECT\r\n"
+" SUM((\r\n"
+" CASE\r\n"
+" WHEN fieldactivity.activity_code IN(\r\n"
+" '22', '36', '58', '61'\r\n"
+" ) THEN\r\n"
+" .5\r\n"
+" ELSE\r\n"
+" 1\r\n"
+" END\r\n"
+" )) AS xx\r\n"
+" FROM\r\n"
+" employee, nsrno, fieldactivity, prd\r\n"
+" WHERE\r\n"
+" employee.emp_code = a.sales_pers\r\n"
+" AND nsrno.adate >= prd.fr_date\r\n"
+" AND nsrno.adate <= prd.to_date\r\n"
+" AND fieldactivity.activity_code = nvl(ddf_smkt_planner_details(employee.emp_code, nsrno.adate, 'A', 'ACT_CODE'\r\n"
+" ), 999999)\r\n"
+" AND fieldactivity.activity_type = 'FW'\r\n"
+" ), 0) AS field_work,\r\n"
+" round((SUM(actual_visit)- (SELECT SUM(\r\n"
+" CASE\r\n"
+" WHEN SUM(DR_DOCTOR_VISIT.NOOF_DOCT) > MAX(DR_DOCTOR_VISIT.NO_VISIT+1)\r\n"
+" THEN SUM(DR_DOCTOR_VISIT.NOOF_DOCT) -MAX(DR_DOCTOR_VISIT.NO_VISIT+1) \r\n"
+" ELSE 0\r\n"
+" END) AS EXCESS_VST\r\n"
+" FROM DR_DOCTOR_VISIT,prd\r\n"
+" WHERE DR_DOCTOR_VISIT.SALES_PERS = a.sales_pers\r\n"
+" AND DR_DOCTOR_VISIT.WORK_DATE >= prd.fr_date\r\n"
+" AND DR_DOCTOR_VISIT.WORK_DATE <= prd.to_date\r\n"
+" AND DR_DOCTOR_VISIT.SC_CODE < 'ZZZZZZZZZZ'\r\n"
+" AND DR_DOCTOR_VISIT.SC_TYPE = 'C'\r\n"
+" AND DDF_SMKT_GEN_DET(DR_DOCTOR_VISIT.SALES_PERS,NULL,DR_DOCTOR_VISIT.WORK_DATE,NULL,'DAR_CONF_FLAG') = 'Y'\r\n"
+" GROUP BY DR_DOCTOR_VISIT.SC_CODE))\r\n"
+" / nvl((\r\n"
+" SELECT\r\n"
+" SUM((\r\n"
+" CASE\r\n"
+" WHEN fieldactivity.activity_code IN(\r\n"
+" '22', '36', '58', '61'\r\n"
+" ) THEN\r\n"
+" .5\r\n"
+" ELSE\r\n"
+" 1\r\n"
+" END\r\n"
+" )) AS xx\r\n"
+" FROM\r\n"
+" employee, nsrno, fieldactivity, prd\r\n"
+" WHERE\r\n"
+" employee.emp_code = a.sales_pers\r\n"
+" AND nsrno.adate >= prd.fr_date\r\n"
+" AND nsrno.adate <= prd.to_date\r\n"
+" AND fieldactivity.activity_code = nvl(ddf_smkt_planner_details(employee.emp_code, nsrno.adate, 'A', 'ACT_CODE'\r\n"
+" ), 999999)\r\n"
+" AND fieldactivity.activity_type = 'FW'\r\n"
+" ), 0), 2) avg_doctor,\r\n"
+" (SELECT SUM(strg_series.no_visit) FROM STRG_SERIES WHERE SALES_PERS=A.SALES_PERS AND STATUS='Y') - (SUM(actual_visit)- (SELECT SUM(\r\n"
+" CASE\r\n"
+" WHEN SUM(DR_DOCTOR_VISIT.NOOF_DOCT) > MAX(DR_DOCTOR_VISIT.NO_VISIT+1)\r\n"
+" THEN SUM(DR_DOCTOR_VISIT.NOOF_DOCT) -MAX(DR_DOCTOR_VISIT.NO_VISIT+1) \r\n"
+" ELSE 0\r\n"
+" END) AS EXCESS_VST\r\n"
+" FROM DR_DOCTOR_VISIT,prd\r\n"
+" WHERE DR_DOCTOR_VISIT.SALES_PERS = a.sales_pers\r\n"
+" AND DR_DOCTOR_VISIT.WORK_DATE >= prd.fr_date\r\n"
+" AND DR_DOCTOR_VISIT.WORK_DATE <= prd.to_date\r\n"
+" AND DR_DOCTOR_VISIT.SC_CODE < 'ZZZZZZZZZZ'\r\n"
+" AND DR_DOCTOR_VISIT.SC_TYPE = 'C'\r\n"
+" AND DDF_SMKT_GEN_DET(DR_DOCTOR_VISIT.SALES_PERS,NULL,DR_DOCTOR_VISIT.WORK_DATE,NULL,'DAR_CONF_FLAG') = 'Y'\r\n"
+" GROUP BY DR_DOCTOR_VISIT.SC_CODE)) AS diff,\r\n"
+" 100 - (SUM(actual_visit)- (SELECT SUM(\r\n"
+" CASE\r\n"
+" WHEN SUM(DR_DOCTOR_VISIT.NOOF_DOCT) > MAX(DR_DOCTOR_VISIT.NO_VISIT+1)\r\n"
+" THEN SUM(DR_DOCTOR_VISIT.NOOF_DOCT) -MAX(DR_DOCTOR_VISIT.NO_VISIT+1) \r\n"
+" ELSE 0\r\n"
+" END) AS EXCESS_VST\r\n"
+" FROM DR_DOCTOR_VISIT,prd\r\n"
+" WHERE DR_DOCTOR_VISIT.SALES_PERS = a.sales_pers\r\n"
+" AND DR_DOCTOR_VISIT.WORK_DATE >= prd.fr_date\r\n"
+" AND DR_DOCTOR_VISIT.WORK_DATE <= prd.to_date\r\n"
+" AND DR_DOCTOR_VISIT.SC_CODE < 'ZZZZZZZZZZ'\r\n"
+" AND DR_DOCTOR_VISIT.SC_TYPE = 'C'\r\n"
+" AND DDF_SMKT_GEN_DET(DR_DOCTOR_VISIT.SALES_PERS,NULL,DR_DOCTOR_VISIT.WORK_DATE,NULL,'DAR_CONF_FLAG') = 'Y'\r\n"
+" GROUP BY DR_DOCTOR_VISIT.SC_CODE)) / (SELECT SUM(strg_series.no_visit) FROM STRG_SERIES WHERE SALES_PERS=A.SALES_PERS AND STATUS='Y') * 100 AS diff_perc\r\n"
+" FROM\r\n"
+" (\r\n"
+" SELECT\r\n"
+" dr_doctor_visit.sales_pers,\r\n"
+" sc_code,\r\n"
+" no_visit,\r\n"
+" COUNT(sc_code) AS actual_visit\r\n"
+" FROM\r\n"
+" dr_doctor_visit,\r\n"
+" prd\r\n"
+" WHERE\r\n"
+" dr_doctor_visit.sales_pers = ?\r\n"
+" and dr_doctor_visit.sc_type = 'C'\r\n"
+" AND work_date BETWEEN prd.fr_date AND prd.to_date\r\n"
+" GROUP BY\r\n"
+" dr_doctor_visit.sales_pers,\r\n"
+" sc_code,\r\n"
+" no_visit\r\n"
+" ) a\r\n"
+" GROUP BY\r\n"
+" sales_pers\r\n"
+" )\r\n"
+"\r\n"
+" , report_block AS (\r\n"
+" SELECT\r\n"
+" ser_req_typ.descr,\r\n"
+" substr(substr(ser_complaint.comp_det, instr(ser_complaint.comp_det, '(', 1, 1), 7), 2) AS emp_code,\r\n"
+" COUNT(DISTINCT CASE WHEN DR_DOCTOR_VISIT.SC_CODE IN STRG_SERIES.SC_CODE THEN dr_doctor_visit.sc_code END) / COUNT(DISTINCT strg_series.sc_code) * 100 AS area_doc_coverage\r\n"