我有兩個數據表間可用房間數量:計數兩個日期
tbroom_capacity
:roomtype
,quantity_room
,note
CREATE TABLE `tbroom_capacity` ( `id` int(10) NOT NULL DEFAULT '0', `roomtype` varchar(30) COLLATE utf8_bin DEFAULT NULL, `quantity_room` int(20) DEFAULT NULL, `note` varchar(50) COLLATE utf8_bin DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
數據: https://dl.dropboxusercontent.com/u/50542216/1.png
tbbooking
:guestid
,roomtypeid
,quantity_room_booking
,startDate
,endDate
CREATE TABLE `tbbooking` ( `guestid` int(20) DEFAULT NULL, `roomtypeid` varchar(20) COLLATE utf8_bin DEFAULT NULL, `quantity_room_booking` int(20) DEFAULT NULL, `startDate` date DEFAULT NULL, `endDate` date DEFAULT NULL, `id` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
數據:
https://dl.dropboxusercontent.com/u/50542216/2.png
我想計算兩個日期之間的剩餘房數與每一個房間-類型。
一個例子:
共計15間帶3型:10標準,2上位,3 VIP
- 旅客1:3標準從2013年5月26日到2013年5月27日
- 嘉賓2:從2013年5月27日3標準,2013年5月28日
- 遊客3要預訂房間,從2013年5月26日至2013年5月28日
我嘗試這樣做檢索總不可用的房間:
SELECT sum(quantity_room_booking) FROM tbbooking
where DATE_ADD(endDate,INTERVAL -1 DAY) >= '2013-05-26'
and startDate <= '2013-05-28' GROUP BY roomtypeid
但結果是:
- 標準
- 2優越
- 3 VIP
的結果應該是:
- 標準
- 2優越
- 3 VIP
[你有什麼嘗試?](http://mattgemmell.com/2008/12/08/what-have-you-tried/)請參閱[關於堆棧溢出](http://stackoverflow.com/關於)。 –
顯示你的表格結構和一些示例數據以節省每個人一些時間 – Drew
@DrewPierce:我已經添加了我的結構數據,請幫助我。謝謝! – user1237902