Повторные ошибки сбора в хранимой процедуре в MySQLMySql

Форум по Mysql
Ответить Пред. темаСлед. тема
Anonymous
 Повторные ошибки сбора в хранимой процедуре в MySQL

Сообщение Anonymous »

Я написал эту сохраненную процедуру, которая сообщает ежемесячную производительность, если сотрудники по своей деятельности и потерпевшему бегам.

Код: Выделить всё

Get_Emp_Runrate_Report
$$
Создать definer =@%< /code> Процедура get_emp_runrate_report < /code> (в targetmonth varchar (7))
begin
- Если вы хотите добавить данные, удалить эту строку.
Удалить из EMP_RUNRATE_REPORT, где месяц = ​​targetMonth; < /p>
DROP TEMPORARY TABLE IF EXISTS base_employees;
CREATE TEMPORARY TABLE base_employees AS
SELECT
Employee_Id,
Emp_Name,
Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month
FROM processlog
< /code>
, где преобразовать (date_format (dateofprocess, '%y-%m') с использованием UTF8) Collate utf8_general_ci
= преобразовать (TargetMonth с использованием UTF8) COLTATE UTF8_GENERAL_CI < /p>
GROUP BY Employee_Id, Emp_Name, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m');

INSERT IGNORE INTO Emp_Runrate_Report (Employee_Id, Emp_Name, Project_code, Month)
SELECT Employee_Id, Emp_Name, Project_code, Month FROM base_employees;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS dis_P01_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS dis_P01_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS dis_P01_Runrate
FROM processlog
WHERE Activity_id = '1' AND Batch LIKE '%P01%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) p01
ON r.Employee_Id = p01.Employee_Id AND r.Project_code = p01.Project_code AND r.Month = p01.Month
SET r.dis_P01_Hrs = p01.dis_P01_Hrs,
r.dis_P01_Miles = p01.dis_P01_Miles,
r.dis_P01_Runrate = p01.dis_P01_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS aud_Dis_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS aud_Dis_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS aud_Dis_Runrate
FROM processlog
WHERE Activity_id = '2' AND Batch LIKE '%P01%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) aud
ON r.Employee_Id = aud.Employee_Id AND r.Project_code = aud.Project_code AND r.Month = aud.Month
SET r.aud_Dis_Hrs = aud.aud_Dis_Hrs,
r.aud_Dis_Miles = aud.aud_Dis_Miles,
r.aud_Dis_Runrate = aud.aud_Dis_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS Rework_Dis_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS Rework_Dis_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS Rework_Dis_Runrate
FROM processlog
WHERE Activity_id = '4' AND Batch LIKE '%P01%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) rwk
ON r.Employee_Id = rwk.Employee_Id AND r.Project_code = rwk.Project_code AND r.Month = rwk.Month
SET r.Rework_Dis_Hrs = rwk.Rework_Dis_Hrs,
r.Rework_Dis_Miles = rwk.Rework_Dis_Miles,
r.Rework_Dis_Runrate = rwk.Rework_Dis_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS dis_RCK_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS dis_RCK_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS dis_RCK_Runrate
FROM processlog
WHERE Batch LIKE '%RCK%'
AND Batch NOT LIKE '%LCMS_RCK%'
AND Batch NOT LIKE '%Events_RCK%'
AND Batch NOT LIKE '%SHLD_RCK%'
AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) rck
ON r.Employee_Id = rck.Employee_Id AND r.Project_code = rck.Project_code AND r.Month = rck.Month
SET r.dis_RCK_Hrs = rck.dis_RCK_Hrs,
r.dis_RCK_Miles = rck.dis_RCK_Miles,
r.dis_RCK_Runrate = rck.dis_RCK_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS dis_Y2Y_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS dis_Y2Y_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS dis_Y2Y_Runrate
FROM processlog
WHERE Activity_Id='1'
AND Batch LIKE '%Y2Y%'
AND Batch NOT LIKE '%Events_Y2Y%'
AND Batch NOT LIKE '%LCMS_Y2Y%'
AND Batch NOT LIKE '%SHLD_Y2Y%'
AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) y2y
ON r.Employee_Id = y2y.Employee_Id AND r.Project_code = y2y.Project_code AND r.Month = y2y.Month
SET r.dis_Y2Y_Hrs = y2y.dis_Y2Y_Hrs,
r.dis_Y2Y_Miles = y2y.dis_Y2Y_Miles,
r.dis_Y2Y_Runrate = y2y.dis_Y2Y_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS dis_RWK_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS dis_RWK_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS dis_RWK_Runrate
FROM processlog
WHERE Activity_id = '1'
AND Batch LIKE '%RWK%'
AND Batch NOT LIKE '%LCMS_RWK%'
AND Batch NOT LIKE '%Events_RWK%'
AND Batch NOT LIKE '%SHLD_RWK%'
AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) rwk_dis
ON r.Employee_Id = rwk_dis.Employee_Id AND r.Project_code = rwk_dis.Project_code AND r.Month = rwk_dis.Month
SET r.dis_RWK_Hrs = rwk_dis.dis_RWK_Hrs,
r.dis_RWK_Miles = rwk_dis.dis_RWK_Miles,
r.dis_RWK_Runrate = rwk_dis.dis_RWK_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS dis_A01_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS dis_A01_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS dis_A01_Runrate
FROM processlog
WHERE Activity_id = '2' AND Batch LIKE '%A01%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) a01_dis
ON r.Employee_Id = a01_dis.Employee_Id AND r.Project_code = a01_dis.Project_code AND r.Month = a01_dis.Month
SET r.dis_A01_Hrs = a01_dis.dis_A01_Hrs,
r.dis_A01_Miles = a01_dis.dis_A01_Miles,
r.dis_A01_Runrate = a01_dis.dis_A01_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS Lcms_C01_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS Lcms_C01_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS Lcms_C01_Runrate
FROM processlog
WHERE Activity_id = '1' AND Batch LIKE '%C01%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) c01_lcms
ON r.Employee_Id = c01_lcms.Employee_Id AND r.Project_code = c01_lcms.Project_code AND r.Month = c01_lcms.Month
SET r.Lcms_C01_Hrs = c01_lcms.Lcms_C01_Hrs,
r.Lcms_C01_Miles = c01_lcms.Lcms_C01_Miles,
r.Lcms_C01_Runrate = c01_lcms.Lcms_C01_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS Lcms_RWK_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS Lcms_RWK_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS Lcms_RWK_Runrate
FROM processlog
WHERE Activity_id = '1' AND Batch LIKE '%LCMS_RWK%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) rwk_lcms
ON r.Employee_Id = rwk_lcms.Employee_Id AND r.Project_code = rwk_lcms.Project_code AND r.Month = rwk_lcms.Month
SET r.Lcms_RWK_Hrs = rwk_lcms.Lcms_RWK_Hrs,
r.Lcms_RWK_Miles = rwk_lcms.Lcms_RWK_Miles,
r.Lcms_RWK_Runrate = rwk_lcms.Lcms_RWK_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS Lcms_RCK_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS Lcms_RCK_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS Lcms_RCK_Runrate
FROM processlog
WHERE Batch LIKE '%LCMS_RCK%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) rck_lcms
ON r.Employee_Id = rck_lcms.Employee_Id AND r.Project_code = rck_lcms.Project_code AND r.Month = rck_lcms.Month
SET r.Lcms_RCK_Hrs = rck_lcms.Lcms_RCK_Hrs,
r.Lcms_RCK_Miles = rck_lcms.Lcms_RCK_Miles,
r.Lcms_RCK_Runrate = rck_lcms.Lcms_RCK_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS Lcms_A01_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS Lcms_A01_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS Lcms_A01_Runrate
FROM processlog
WHERE Activity_id = '2' AND Batch LIKE '%LCMS_A01%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) a01_lcms
ON r.Employee_Id = a01_lcms.Employee_Id AND r.Project_code = a01_lcms.Project_code AND r.Month = a01_lcms.Month
SET r.Lcms_A01_Hrs = a01_lcms.Lcms_A01_Hrs,
r.Lcms_A01_Miles = a01_lcms.Lcms_A01_Miles,
r.Lcms_A01_Runrate = a01_lcms.Lcms_A01_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS Events_prod_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS Events_prod_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS Events_prod_Runrate
FROM processlog
WHERE Activity_id = '1' AND Batch LIKE '%Events%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) events_prod
ON r.Employee_Id = events_prod.Employee_Id AND r.Project_code = events_prod.Project_code AND r.Month = events_prod.Month
SET r.Events_prod_Hrs = events_prod.Events_prod_Hrs,
r.Events_prod_Miles = events_prod.Events_prod_Miles,
r.Events_prod_Runrate = events_prod.Events_prod_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS Events_aud_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS Events_aud_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS Events_aud_Runrate
FROM processlog
WHERE Activity_id = '2' AND Batch LIKE '%Events%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) events_aud
ON r.Employee_Id = events_aud.Employee_Id AND r.Project_code = events_aud.Project_code AND r.Month = events_aud.Month
SET r.Events_aud_Hrs = events_aud.Events_aud_Hrs,
r.Events_aud_Miles = events_aud.Events_aud_Miles,
r.Events_aud_Runrate = events_aud.Events_aud_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS Events_Y2Y_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS Events_Y2Y_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS Events_Y2Y_Runrate
FROM processlog
WHERE Activity_Id='1' AND Batch LIKE '%Events_Y2Y%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) events_y2y
ON r.Employee_Id = events_y2y.Employee_Id AND r.Project_code = events_y2y.Project_code AND r.Month = events_y2y.Month
SET r.Events_Y2Y_Hrs = events_y2y.Events_Y2Y_Hrs,
r.Events_Y2Y_Miles = events_y2y.Events_Y2Y_Miles,
r.Events_Y2Y_Runrate = events_y2y.Events_Y2Y_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS Events_Rework_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS Events_Rework_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS Events_Rework_Runrate
FROM processlog
WHERE Activity_id = '4' AND Batch LIKE '%Events%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) events_rework
ON r.Employee_Id = events_rework.Employee_Id AND r.Project_code = events_rework.Project_code AND r.Month = events_rework.Month
SET r.Events_Rework_Hrs = events_rework.Events_Rework_Hrs,
r.Events_Rework_Miles = events_rework.Events_Rework_Miles,
r.Events_Rework_Runrate = events_rework.Events_Rework_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS Events_E01_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS Events_E01_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS Events_E01_Runrate
FROM processlog
WHERE Activity_id = '2' AND Batch LIKE '%E01%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) e01_events
ON r.Employee_Id = e01_events.Employee_Id AND r.Project_code = e01_events.Project_code AND r.Month = e01_events.Month
SET r.Events_E01_Hrs = e01_events.Events_E01_Hrs,
r.Events_E01_Miles = e01_events.Events_E01_Miles,
r.Events_E01_Runrate = e01_events.Events_E01_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS SHLD_prod_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS SHLD_prod_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS SHLD_prod_Runrate
FROM processlog
WHERE Activity_id = '1' AND Batch LIKE '%SHLD%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) shld_prod
ON r.Employee_Id = shld_prod.Employee_Id AND r.Project_code = shld_prod.Project_code AND r.Month = shld_prod.Month
SET r.SHLD_prod_Hrs = shld_prod.SHLD_prod_Hrs,
r.SHLD_prod_Miles = shld_prod.SHLD_prod_Miles,
r.SHLD_prod_Runrate = shld_prod.SHLD_prod_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS SLD_aud_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS SLD_aud_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS SLD_aud_Runrate
FROM processlog
WHERE Activity_id = '2' AND Batch LIKE '%SHLD%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) shld_aud
ON r.Employee_Id = shld_aud.Employee_Id AND r.Project_code = shld_aud.Project_code AND r.Month = shld_aud.Month
SET r.SLD_aud_Hrs = shld_aud.SLD_aud_Hrs,
r.SLD_aud_Miles = shld_aud.SLD_aud_Miles,
r.SLD_aud_Runrate = shld_aud.SLD_aud_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS SHLD_Y2Y_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS SHLD_Y2Y_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS SHLD_Y2Y_Runrate
FROM processlog
WHERE Activity_Id='1' AND Batch LIKE '%SHLD_Y2Y%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) shld_y2y
ON r.Employee_Id = shld_y2y.Employee_Id AND r.Project_code = shld_y2y.Project_code AND r.Month = shld_y2y.Month
SET r.SHLD_Y2Y_Hrs = shld_y2y.SHLD_Y2Y_Hrs,
r.SHLD_Y2Y_Miles = shld_y2y.SHLD_Y2Y_Miles,
r.SHLD_Y2Y_Runrate = shld_y2y.SHLD_Y2Y_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS SHLD_Rework_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS SHLD_Rework_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS SHLD_Rework_Runrate
FROM processlog
WHERE Activity_id = '4' AND Batch LIKE '%SHLD%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) shld_rework
ON r.Employee_Id = shld_rework.Employee_Id AND r.Project_code = shld_rework.Project_code AND r.Month = shld_rework.Month
SET r.SHLD_Rework_Hrs = shld_rework.SHLD_Rework_Hrs,
r.SHLD_Rework_Miles = shld_rework.SHLD_Rework_Miles,
r.SHLD_Rework_Runrate = shld_rework.SHLD_Rework_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS SHLD_S01_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS SHLD_S01_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS SHLD_S01_Runrate
FROM processlog
WHERE Activity_id = '2' AND Batch LIKE '%S01%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) s01_shld
ON r.Employee_Id = s01_shld.Employee_Id AND r.Project_code = s01_shld.Project_code AND r.Month = s01_shld.Month
SET r.SHLD_S01_Hrs = s01_shld.SHLD_S01_Hrs,
r.SHLD_S01_Miles = s01_shld.SHLD_S01_Miles,
r.SHLD_S01_Runrate = s01_shld.SHLD_S01_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS Others_Rework_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS Others_Rework_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS Others_Rework_Runrate
FROM processlog
WHERE Activity_id = '97' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) others_rework
ON r.Employee_Id = others_rework.Employee_Id AND r.Project_code = others_rework.Project_code AND r.Month = others_rework.Month
SET r.Others_Rework_Hrs = others_rework.Others_Rework_Hrs,
r.Others_Rework_Miles = others_rework.Others_Rework_Miles,
r.Others_Rework_Runrate = others_rework.Others_Rework_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS FQA_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS FQA_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS FQA_Runrate
FROM processlog
WHERE Batch LIKE '%FQA%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) fqa
ON r.Employee_Id = fqa.Employee_Id AND r.Project_code = fqa.Project_code AND r.Month = fqa.Month
SET r.FQA_Hrs = fqa.FQA_Hrs,
r.FQA_Miles = fqa.FQA_Miles,
r.FQA_Runrate = fqa.FQA_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS IPR_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS IPR_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS IPR_Runrate
FROM processlog
WHERE Batch LIKE '%IPR%' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) ipr
ON r.Employee_Id = ipr.Employee_Id AND r.Project_code = ipr.Project_code AND r.Month = ipr.Month
SET r.IPR_Hrs = ipr.IPR_Hrs,
r.IPR_Miles = ipr.IPR_Miles,
r.IPR_Runrate = ipr.IPR_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS Meeting_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS Meeting_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS Meeting_Runrate
FROM processlog
WHERE (Activity_id = '99' OR Batch LIKE '%MEETING%') AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) meeting
ON r.Employee_Id = meeting.Employee_Id AND r.Project_code = meeting.Project_code AND r.Month = meeting.Month
SET r.Meeting_Hrs = meeting.Meeting_Hrs,
r.Meeting_Miles = meeting.Meeting_Miles,
r.Meeting_Runrate = meeting.Meeting_Runrate;

UPDATE Emp_Runrate_Report r
JOIN (
SELECT
Employee_Id, Project_code,
DATE_FORMAT(DateOfProcess, '%Y-%m') AS Month,
ROUND(SUM(Work_Time) / 3600, 2) AS Training_Hrs,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))), 2) AS Training_Miles,
ROUND(SUM(CAST(Total_Chain AS DECIMAL(10,3))) / NULLIF(SUM(Work_Time) / 3600, 0), 2) AS Training_Runrate
FROM processlog
WHERE Activity_id = '7' AND Batch != 'BREAK'
AND DATE_FORMAT(DateOfProcess, '%Y-%m') = TargetMonth
GROUP BY Employee_Id, Project_code, DATE_FORMAT(DateOfProcess, '%Y-%m')
) training
ON r.Employee_Id = training.Employee_Id AND r.Project_code = training.Project_code AND r.Month = training.Month
SET r.Training_Hrs = training.Training_Hrs,
r.Training_Miles = training.Training_Miles,
r.Training_Runrate = training.Training_Runrate;
< /code>
end $$ < /p>
delimiter; < /p>
'' '' < /p>
Я продолжаю получать повторяющиеся ошибки сбора, независимо от того, что я делаю. Я попытался преобразовать оба в UTF-8, не работал, все мои столбцы находятся в latin_swedish_ci
'' '
Код ошибки: 1267
Незаконное сочетание коллекций (latin1_swedish_ci, неянт>

Подробнее здесь: https://stackoverflow.com/questions/796 ... e-in-mysql
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «MySql»