I have a stored procedure which increments a specific date in a select query. I need to get the current value of the incrementing date variable along with other fields. But the query always returns the last incremented date only. Can you please show me where is the error?.
Stored Procedure:
CREATE PROCEDURE `IBE_getAvailabilityForRange`(IN firstStayDate DATE, IN lastStayDate DATE)
BEGIN
DECLARE nextDate DATE;
SET nextDate = firstStayDate;
WHILE nextDate <= lastStayDate DO
SELECT nextDate as stayDate, Room_type, No_of_room, ArrivalDate, DepartDate, state FROM reservation_temp WHERE Reservation_is_done = 1 AND state != 0 AND ArrivalDate <= nextDate AND DepartDate > nextDate;
SET nextDate = DATE_ADD(nextDate, INTERVAL 1 DAY);
END WHILE;
END
Result it output when called call IBE_getAvailabilityForRange('2019-02-25', '2019-02-27');
[EDIT] I need it to output results for 2019-02-25, 2019-02-26, 2019-02-27. Currently, it gives me results for 2019-02-27 only.
[EDIT: Edited stored procedure with GROUP by and SUM]
BEGIN
DECLARE nextDate DATE;
SET nextDate = firstStayDate;
WHILE nextDate <= lastStayDate DO
SELECT nextDate as stayDate, Room_type, SUM(No_of_room), ArrivalDate, DepartDate, state FROM reservation_temp WHERE Reservation_is_done = 1 AND state != 0 AND ArrivalDate <= nextDate AND DepartDate > nextDate GROUP BY stayDate, Room_type;
SET nextDate = DATE_ADD(nextDate, INTERVAL 1 DAY);
END WHILE;