Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/02/2011, 18:12
marcosaguileraly
 
Fecha de Ingreso: febrero-2011
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Insert ó update: Si existe un registro o no existe

Amigo, tambien he probado con esto


Código MySQL:
Ver original
  1. DROP TRIGGER IF EXISTS `promedio`//
  2. CREATE TRIGGER `promedio` AFTER INSERT ON `tabla2`
  3.  DECLARE total_final INT(11);
  4.  -- Cargo la Variable con la Cantidad de Registros  
  5.  SET total_final = (SELECT COUNT(*) FROM final WHERE idalumno= NEW.idalumno GROUP BY idalumno);
  6.  DECLARE avg INT(11);
  7.   SET avg_alumno = (SELECT AVG(califnum) FROM final WHERE idalumno = NEW.idalumno GROUP BY idalumno);              
  8. -- Luego Tu codigo del If                  
  9.                  
  10. IF total_final = 0 THEN
  11.      INSERT INTO final (idalumno, califnum) SELECT idalumno, AVG(califnum)  
  12.      as califnum FROM tabla2 WHERE final.idalumno=NEW.idalumno GROUP BY idalumno;
  13.   END IF;
  14.     IF total_final > 0 THEN
  15.      UPDATE final SET
  16.            final.idalumno= NEW.idalumno,
  17.            final.califnum= avg_alumno
  18.      WHERE final.idalumno=NEW.idalumno;
  19.   END IF;
  20. //


y no me da resultado!, quiza sea en al sintaxis, me arroja este error:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE avg INT(11);
SET avg_alumno = (SELECT AVG(califnum) FROM final WHERE ' at line 6