2017-09-07 44 views
0

價格計劃主表之間的利率獲取可用的房間在抵達和離開日期

CREATE TABLE `price_plan_master` (
    `id` int(11) NOT NULL COMMENT 'Id (Auto Increment)', 
    `room_id` int(11) NOT NULL COMMENT 'Room Id (Related to room_master table)', 
    `date` date NOT NULL COMMENT 'Date to get rate', 
    `no_of_rooms` int(11) NOT NULL COMMENT 'No of rooms available', 
    `rate` double NOT NULL COMMENT 'Room rate', 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

Id|room_id|date|no_of_rooms|rate 
1|2|2017-10-01|5|8530 
2|2|2017-10-02|5|8530 
3|3|2017-10-01|5|8200 
4|3|2017-10-02|5|8200 
5|2|2017-10-01|2|14609 
6|2|2017-10-02|2|14609 
7|3|2017-10-03|2|14609 
8|2|2017-10-04|2|14609 
9|3|2017-10-01|2|13000 
10|3|2017-10-02|2|13000 
11|3|2017-10-03|2|13000 
12|3|2017-10-04|2|13000 
13|6|2017-10-01|3|17286 
14|6|2017-10-02|3|17286 
15|6|2017-10-03|3|17286 
16|6|2017-10-04|3|17286 
17|11|2017-10-01|10|2830 
18|11|2017-10-02|10|2830 
19|11|2017-10-03|10|2830 
20|11|2017-10-04|10|2830 
21|12|2017-10-01|2|1700 

我想獲取所有客房,條件 可用性應等於或最高要求的房間沒有(指no_of_rooms> = 3 )在請求入住和退房日期之間。 對於日期範圍之間的每個日期,應檢查房間可用性。

目前,我正在使用下面的查詢。

select * from price_plan_master 
where date >= checkin and date <= checkout 

我需要爲所有日期查詢。

任何人都可以建議我應該更改單個查詢來獲取記錄嗎?

回答

0

你可以使用你有一個添加條件的書面查詢:

select * from price_plan_master 
where date >= checkin and date <= checkout 
and no_of_rooms >= 3 

這將在日期範圍,其中客房數量大於或等於房間的請求數量選擇所有的房間。

0

SELECT ppm的。* FROM ppm的price_plan_master INNER JOIN( SELECT ROOM_ID,COUNT(ROOM_ID)AS CNT,DATEDIFF(結帳,籤)+1 AS溫度 FROM price_plan_master WHERE date> =簽入AND date < = checkout AND no_of_rooms> = 3 GROUP BY room_id HAVING cnt = temp)t ON ppm.room_id = t.room_id