2016-05-29 15 views
0

Ich möchte eine Prozedur in MySql mit IF-Anweisung erstellen, die mir die Namen aller Schüler anzeigen würde, deren Durchschnittswert über 70 liegt, wenn ich die ID eines Studenten gebe IN-Parameter.Stuck beim Erstellen einer einfachen Prozedur in MySQL [IF-Anweisung]

Ist es möglich, viele Studenten IDs gleichzeitig zu geben und mit CALL und SELECT auf weitere Ergebnisse zuzugreifen?

Schülertisch:

id, name, major, avg, Status
'33', 'Vera Violet', NULL, '92', 'UNCL'
' 94 ',' Pat Pink ',' POLS ',' 93 ',' UNCL '
' 101 ',' Bob Blau ',' ECON ',' 73 ',' UNCL '' 102 ',' Wyatt White "GEOG", "64", "UNGR"
"302", "Yolanda Yellow", "HIST", " 64 ',' UNGR '
' 403 ',' Bryan Black ', ' ECON ',' 87 ',' GRAD '
' 576 ',' Ruby Rose ',' ECON ',' 77 ',' UNCL '
'992', 'Greg Green', 'COMM', '86', 'GRAD'

Hier ist, was ich versucht: (Aber hat arbeitete nicht)

DELIMITER $$ 
CREATE PROCEDURE sort_Students_By_Avg(IN student_Id INT(11), OUT student_Name VARCHAR(20)) 
BEGIN 
DECLARE student_Avg INT(11); 
SELECT avg INTO student_Avg 
FROM student 
WHERE id=student_Id; 

IF (student_Avg > 70) 
THEN SET student_Name = student.name; 
END IF; 
END $$ 

Antwort

1

Dies scheint nicht besonders nützlich, aber ein Verfahren würde so aussehen:

CREATE PROCEDURE sort_Students_By_Avg (
    IN in_student_Id INT(11), 
    OUT out_student_Name VARCHAR(20) 
) 
BEGIN 
    SELECT s.name INTO out_student_name 
    FROM student s 
    WHERE s.id = in_student_Id AND s.avg > 70; 
END; 
+0

Vielen Dank, Kumpel. Ist es möglich, viele Studenten-IDs gleichzeitig zu geben und mit CALL und SELECT auf weitere Ergebnisse zuzugreifen? – Anonymous

Verwandte Themen