Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta ProcAlmacenado

Estas en el tema de Consulta ProcAlmacenado en el foro de Mysql en Foros del Web. Saludos; quisiera ayuda con el procedimiento que intento implementar, la idea, que consulte los contratos que terminan y que lo seleccione y reste los comerciales. ...
  #1 (permalink)  
Antiguo 11/01/2011, 15:20
Avatar de shinta_snake  
Fecha de Ingreso: diciembre-2009
Mensajes: 70
Antigüedad: 14 años, 4 meses
Puntos: 0
Consulta ProcAlmacenado

Saludos;
quisiera ayuda con el procedimiento que intento implementar, la idea, que consulte los contratos que terminan y que lo seleccione y reste los comerciales.

me gustaria saber porq no funciona o si se puede mejora.


Código PHP:
DELIMITER $$

DROP PROCEDURE IF EXISTS `db`.`nombre` $$
CREATE DEFINER=`root`@`localhostPROCEDURE `nombre`()
BEGIN
/*declaro variables*/
DECLARE MAXI INTEGER;
DECLARE 
COR INTEGER DEFAULT 1;
DECLARE 
FH  DATE;
DECLARE 
SEN varchar(20);
DECLARE 
PROG varchar(40);
DECLARE 
STOCK varchar(9);
DECLARE 
A1A2A3A1CA2CA3C INTEGER DEFAULT 0;
/*saco la cantidad de registros en la tabla X*/
SET MAXI = (SELECT MAX(idXFROM X);
WHILE 
COR <= MAXI DO
/*selecciono las datos de la tabla X y las ingreso en variables con un select into */
    
SELECT senalprogramastockf_hastaidavi1idavi2idavi3
    INTO SEN
PROGSTOCKFHA1A2A3
    FROM X
    WHERE idX
=COR;

/*selecciono y las ingreso en las varibles de la tabla Z*/
    
SELECT A30cA30gA10
    INTO A1C
A2CA3C
    FROM Z
    WHERE senal
=SEN AND programa=PROG;

/*Consulto si la fecha de fin de contrato es menor a la fecha de hoy 
y si su stock es vendido*/
    
IF (FH CURDATE() AND STOCK 'Vendido'THEN
/*actualizo la tabla Z y resto los comerciales */
        
UPDATE bloqueos
        SET A30c
A30c A1A30g A30g A2A10 A10 A3
        WHERE senal
=SEN AND programa=PROG;
/*actualizo la tabla X su estado a terminado de la tabla X*/
        
UPDATE X
        SET stock
='Terminado'
        
WHERE idX=COR;
    
END IF;
    
SET COR COR 1;
END WHILE;
END $$
DELIMITER 
atento a sus comentarios y ayudas.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:53.