CREATE DEFINER=`root`@`localhost` FUNCTION `F_GetProjectCostPerEmployeeInProject`(id VARCHAR(20)) RETURNS DECIMAL(30,2)
BEGIN
DECLARE e_id VARCHAR(20);
DECLARE finished INT ;
DECLARE temp DECIMAL(30,2);
DECLARE temp2 DECIMAL(30,2);
DECLARE TotalCostOfEmployees DECIMAL(30,2);
DECLARE cur CURSOR FOR SELECT DISTINCT e_id FROM project_employee WHERE project_id=id;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;
emploop : LOOP
FETCH cur INTO e_id;
IF finished =1 ;
LEAVE emploop;
END IF ;
SET TotalCostOfEmployees = TotalCostOfEmployees + (F_TotalManDaysPerEmployee(e_id,id)*(F_GetEmployeeGradeSal(e_id));
END LOOP emploop;
RETURN TotalCostOfEmployees;
END$$
Das Problem ist, das geben Fehler in Zeile:Ausgabe in dem Hinzufügen von zwei Ausgaben von MySQL-Funktion innerhalb einer anderen Funktion
SET TotalCostOfEmployees = TotalCostOfEmployees + (F_TotalManDaysPerEmployee(e_id,id)*(F_GetEmployeeGradeSal(e_id));
Dies ist der Fehler:
Fehlercode: 1064 Sie haben ein Fehler in Ihre SQL-Syntax; Überprüfen Sie das Handbuch, das entspricht Ihrem MySQL-Server Version für die richtige Syntax zu verwenden in der Nähe '; Arbeit verlassen; Ende wenn;
set TotalCostOfEmployees = TotalCostOfEmploy' at line 12
hey thanks .. die mir geholfen .... ich ein Neuling in mysql sein .... so einen Fehler gemacht :) – Joy
@Joy np. Bitte denken Sie daran, die Antwort auf Ihre Frage zu akzeptieren :-) –
Entschuldigung, ich schätze, ich habe ein anderes Problem hier gepostet ich bin in einem falschen Abschnitt konfrontiert können Sie bitte nach tht? – Joy