Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/11/2012, 10:51
Avatar de djaevi
djaevi
 
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 9 meses
Puntos: 47
Respuesta: Es posible crear un INSERT y un UPDATE dentro de un IF?

Si lo que haces es verificar a lo largo de tu tabla si existe el concepto enero y la fecha saldada vas a tener que usar en primer lugar un stored procedure y en segundo lugar un cursor para recorrer tu tabla, el IF dentro del SELECT hasta donde se, se usa para filtrar lo que se elige x ej:

SELECT IF (tipoUsuario=1,'Administrador','Usuario') AS tipoDeUsuario;

Deberrias usar algo como esto:

Código MySQL:
Ver original
  1. DELIMITER $$
  2.  
  3. CREATE DEFINER=`root`@`localhost` PROCEDURE `ejemplo`()
  4.     DECLARE done INT DEFAULT 0;
  5.     DECLARE SP_CONCEPTO CHAR(16);
  6.     DECLARE SP_FECHA_SALDADA DATE;
  7.     DECLARE SP_IDUSER INT;
  8.     DECLARE cur1 CURSOR FOR SELECT IDUSER,CONCEPTO,FECHA_SALDADA FROM pagos;
  9.    
  10.     OPEN cur1;
  11.    
  12.         REPEAT
  13.        
  14.             FETCH cur1 INTO SP_IDUSER, SP_CONCEPTO, SP_FECHA_SALDADA;
  15.            
  16.                 IF(SP_CONCEPTO = 'ENERO' AND SP_FECHA_SALDADA < DATE_FORMAT(SP_FECHA_SALDADA, '2013-%m-%d') AND SP_IDUSER = 55) THEN
  17.                    
  18.                     IF(SP_CONCEPTO = 'ENERO' AND SP_FECHA_SALDADA < DATE_FORMAT(SP_FECHA_SALDADA, '2013-%m-%d'), 1, 2) THEN
  19.                        
  20.                         SET @resultado = 1;
  21.                    
  22.                     ELSE
  23.                    
  24.                         SET @resultado = 2;        
  25.                    
  26.                     END IF;  
  27.                    
  28.                     UPDATE pagos SET baja = @resultado;
  29.                
  30.                 ELSE
  31.                
  32.                     INSERT INTO pagos (IDUSR,CONCEPTO,MONTO,FECHA,FECHA_SALDADA) VALUES (55, 'ENERO' ,'200','0000-00-00 00:00:00','2012-11-08 00:00:00');
  33.                
  34.                 END IF;
  35.                
  36.         UNTIL done END REPEAT;
  37.  
  38.   CLOSE cur1;
  39.  

No lo he probado pero se que errores de sintaxis no tiene si no te resulta investiga un poco mas sobre los cursores.

Salu2