--- ./MA_PRODUCTION_COST.xml	2020-09-28 12:58:06.984953000 +0200
+++ ./MA_PRODUCTION_COST.xml	2020-09-28 12:50:05.788492000 +0200
@@ -241,13 +241,13 @@
                                                     END), 0) AS cost, ple.MA_PL_EMPLOYEE_ID
                                    FROM MA_PL_EMPLOYEE ple, C_SALARY_CATEGORY_COST scc
                                    WHERE ple.m_productionplan_id = Cur_ProductionPlan.m_productionplan_id
-                                     AND ple.c_salary_category_id = scc.c_salary_category_id
-                                     AND scc.c_salary_category_cost_id = (SELECT MAX(scc1.c_salary_category_cost_id)
-                                                          FROM C_SALARY_CATEGORY_COST scc1
-                                                          WHERE scc1.c_salary_category_id = ple.c_salary_category_id
-                                                            AND scc1.datefrom = (SELECT MAX(scc2.datefrom)
-                                                                       FROM C_SALARY_CATEGORY_COST scc2
-                                                                       WHERE scc2.c_salary_category_id = scc1.c_salary_category_id))) LOOP
+                                    AND ple.c_salary_category_id = scc.c_salary_category_id
+                                    AND scc.c_salary_category_cost_id = (SELECT scc1.c_salary_category_cost_id
+                                                         FROM C_SALARY_CATEGORY_COST scc1
+							 WHERE scc1.c_salary_category_id = ple.c_salary_category_id
+							  AND scc1.datefrom <= v_ProductionDate
+							 ORDER BY scc1.datefrom DESC LIMIT 1)) LOOP
+
           v_ProductionCost_Tmp := v_ProductionCost_Tmp + COALESCE(Cur_SalaryCategory.cost,0);
           UPDATE MA_PL_EMPLOYEE
           SET CALCCOST = COALESCE(Cur_SalaryCategory.cost, 0)
@@ -265,13 +265,12 @@
                                              END), 0) AS COST, plm.MA_PL_MACHINE_ID
                             FROM MA_PL_MACHINE plm, MA_MACHINE_COST mc
                             WHERE plm.m_productionplan_id = Cur_ProductionPlan.m_productionplan_id
-                              AND plm.ma_machine_id = mc.ma_machine_id
-                              AND mc.ma_machine_cost_id = (SELECT MAX(mc1.ma_machine_cost_id)
-                                                   FROM MA_MACHINE_COST mc1
-                                                   WHERE mc1.ma_machine_id = plm.ma_machine_id
-                                                   AND mc1.validfrom = (SELECT MAX(mc2.validfrom)
-                                                   FROM MA_MACHINE_COST mc2
-                                                   WHERE mc2.ma_machine_id = mc1.ma_machine_id))) LOOP
+                             AND plm.ma_machine_id = mc.ma_machine_id
+                             AND mc.ma_machine_cost_id = (SELECT mc1.ma_machine_cost_id
+                                                  FROM MA_MACHINE_COST mc1
+                                                  WHERE mc1.ma_machine_id = plm.ma_machine_id
+                                                    AND mc1.validfrom  <= v_ProductionDate
+						  ORDER BY mc1.validfrom DESC LIMIT 1)) LOOP
           v_ProductionCost_Tmp := v_ProductionCost_Tmp + COALESCE(Cur_Machine.COST,0);
           UPDATE MA_PL_MACHINE
           SET calccost = COALESCE(Cur_MAchine.cost, 0)
