Tema: Procedure
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/04/2007, 20:03
Sefrot
 
Fecha de Ingreso: noviembre-2005
Mensajes: 15
Antigüedad: 18 años, 5 meses
Puntos: 0
Procedure

Estoy intentando que recoja la informacion de un día específico o sino el anterior. El día es un SMALLINT(3). El problema que tengo es que no sé cómo hacer que en el bucle, que funciona, compruebe si es el mismo día que el que le paso con la variable ds y si no lo es que busque el más cercano.

Me he quedado atascado aquí:
Código:
CREATE PROCEDURE simpleproc (xs SMALLINT(3), ds SMALLINT(3), OUT A TINYTEXT, OUT IJ MEDIUMINT(5))
BEGIN
DECLARE echa SMALLINT(3);
    DECLARE done BOOL DEFAULT FALSE;
    DECLARE cur1
        CURSOR FOR
        SELECT Dia FROM fechas WHERE x=xs;
    DECLARE
        CONTINUE HANDLER FOR
        SQLSTATE '02000'
            SET done = TRUE;

    OPEN cur1;

    myLoop: LOOP
        FETCH cur1 INTO echa;

        IF done THEN
            CLOSE cur1;
            LEAVE myLoop;
        END IF;

IF echa THEN
SELECT Dato1,Dato2 INTO A,IJ FROM fechas WHERE x=xs AND Dia=echa;
END IF;
    END LOOP;
END//
Gracias anticipadas. Espero que podáis ayudarme.