codice:
DELIMITER $$

DROP PROCEDURE IF EXISTS `hotel_progetto`.`test10` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `test10`(arrivo DATE, partenza DATE)
BEGIN
   DECLARE varData DATE;
    DECLARE outData DATE DEFAULT DATE_ADD(varData,INTERVAL 1 day);
        DECLARE q INT;
        DECLARE r INT;
        DECLARE s INT;
        DECLARE ind DAte;
        DECLARE outd DAte;
        DECLARE conta INT DEFAULT 0;
        DECLARE x INT;
         DECLARE cur1 CURSOR FOR SELECT ID FROM hotel ;
         DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET conta = 1;
        CREATE TEMPORARY TABLE IF NOT EXISTS temptable1 (a INT,ID3 INT,test DAte,test1 Date,id2 INT,id4 INT,data1 DAte,data2 Date) ENGINE=MEMORY;

        SET varData = arrivo;
        SET outData = DATE_ADD(arrivo,INTERVAL 1 day);
OPEN cur1;
FETCH cur1 INTO x;
ciclo1: WHILE conta != 1 DO

WHILE varData < partenza DO
SELECT quantita,id,id_htl,dal,al INTO q,r,s,ind,outd FROM allottment WHERE dal < varData and outData < al AND ID_HTL = x limit 1;

         SET varData = DATE_ADD(varData,INTERVAL 1 day);
         SET outData = DATE_ADD(varData,INTERVAL 1 day);

INSERT INTO temptable1 (a,ID3,ID2,test,test1,data1,data2) VALUES (q,r,s,ind,outd,vardata,outdata);

END WHILE;

FETCH cur1 INTO x;
END WHILE;

select * from temptable1 ;
DROP TEMPORARY TABLE IF EXISTS temptable1;
END $$

DELIMITER ;
Il problema è il seguente:

con il ciclo 1 ottengo un ciclo composto da due id 25 e 26

dentro allottment ho questo:

id_htl dal al quantita
25 2007-01-07 00:00:00 2007-01-20 00:00:00 30
25 2007-01-20 00:00:00 2007-01-31 00:00:00 15
25 2007-02-01 00:00:00 2007-02-15 00:00:00 10
25 2007-02-15 00:00:00 2007-02-25 00:00:00 2
26 2007-02-09 00:00:00 2007-02-26 00:00:00 2
26 2007-02-05 00:00:00 2007-02-09 00:00:00 5

QUindi per come la SP è strutturata dovrei avere 4 righe come risultato con queste date:

CALL test10('2007-01-25','2007-01-27')
invece me ne trovo solo 2 riferite a ID 25

se invece cambio ordine del cursore cur1 in questo modo:

DECLARE cur1 CURSOR FOR SELECT ID FROM hotel order by id desc;

Ottengo le 2 righe dell ID 26 anche se vuote...

quindi... sembra che la SP si blocchi sul primo ciclo...
come posso ovviare ?