我无法像我希望的那样使此MySQL过程正常运行(语法错误)

时间:2019-04-29 11:23:24

标签: mysql

我正在尝试为酒店创建一个简单的数据库。它应该照顾所有预订。我正在尝试执行一个程序,该程序将在给定日期搜索未预订的房间。但是,我无法获得任何“完美的主意”,甚至无法完成我的主意。

我已经有一个充满数据的工作数据库,但是没有任何程序。我试图制作一个使用LOOP和IF的过程,但是没有成功。后来有人告诉我这是一个愚蠢的主意。

谁能给我任何想法,什么是错甚至更好,如何使整个过程正常进行?

这是给定桌子的照片

enter image description here

DELIMITER //

/*Here I intake in order: How many people want to book a room, arrival date, departure date*/
CREATE PROCEDURE wolnePokoje(IN ilosc int, IN poczatek date, IN koniec date)
BEGIN

/*Here I select room Numbers and how many people the room can accommodate*/
SELECT Pokoj.RoomID, Pokoj.IloscMiejsc

/*There is an inner join (INNER may not be correct) of ROOMS and BOOKINGS. */
FROM Pokoj INNER JOIN Rezerwacje ON Pokoj.BookID = Rezerwcje.BookID

/*This WHERE tell me if a Room is booked. (WHERE NOT may not be correct, just like the whole WHERE)*/
WHERE NOT((poczatek < Rezerwacje.DataPrzyjazdu AND poczatek > Rezerwacje.DataOdjazdu) OR ((koniec < Rezerwacje.DataPrzyjazdu) AND (koniec > Rezerwacje.DataOdjazdu))

/*This WHERE I check if a room can accommodate given number of people, it's like "AND number <= numberRoomCanAccommodate"*/
AND ilosc <= Pokoj.IloscMiejsc;
END //

DELIMITER ;

1 个答案:

答案 0 :(得分:0)

您的评论未正确关闭,而缺少)用于关闭NOT子句

SELECT Pokoj.RoomID, Pokoj.IloscMiejsc

/*There is an inner join (INNER may not be correct) of ROOMS and BOOKINGS. */
FROM Pokoj INNER JOIN Rezerwacje ON Pokoj.BookID = Rezerwcje.BookID

/*This WHERE tell me if a Room is booked. (WHERE NOT may not be correct, just like the whole WHERE)*/
WHERE NOT((poczatek < Rezerwacje.DataPrzyjazdu AND poczatek > Rezerwacje.DataOdjazdu) 
  OR ((koniec < Rezerwacje.DataPrzyjazdu) AND (koniec > Rezerwacje.DataOdjazdu)))   
                                                                               ^here
相关问题