我的查询
SELECT RoomType, date FROM Superior WHERE (date >= '2012-06-26'AND date < '2012-06-30')AND (Avail > '0')
UNION
SELECT RoomType, date FROM Deluxe WHERE (date >= '2012-06-26'AND date < '2012-06-30')AND (Avail > '0')
UNION
SELECT RoomType, date FROM SuperDeluxe WHERE (date >= '2012-06-26'AND date < '2012-06-30')AND (Avail > '0')
ORDER BY date
HAVING COUNT(date, INTERVAL 3 DAY)
在'附近出现语法错误HAVING COUNT(date, INTERVAL 3 DAY)
我的目标是获得日期和可用性大于 3 天的房间类型的结果
** 在 2012 年 6 月 29 日的高级和豪华表中,Avail=0,对于 SuperDeluxe,所有日期均为 Avail
在这种情况下,我的结果应该只显示 SuperDeluxe 作为可用性,但
**RoomType** **date**
Superior 2012-06-26
Superior 2012-06-27
Superior 2012-06-28
Deluxe 2012-06-26
Deluxe 2012-06-27
Deluxe 2012-06-28
SuperDeluxe 2012-06-26
SuperDeluxe 2012-06-27
SuperDeluxe 2012-06-28
SuperDeluxe 2012-06-29
是的,它是 MySQL,我只是想向自己证明,我可以帮助我的叔叔完成这件事。如你所知,我不是一个季节性的,只是一个初学者。你猜对了,所有 3 个表都是模棱两可的。我有另一个字段可用,它跟踪可用房间的数量。预订完成后,它会自动计算可用房间。
我当前的查询正在使用房间类型的选项选择,它只能为每个查询生成房间类型的可用性。有了以上内容,我计划进行 1 次查询并生成日期范围内可用的任何房间类型。使用上述联合查询时遇到的问题,我得到的结果还包括可用性为 = 0 的范围内的日期之一
我正在尝试这样的事情
SELECT RoomType, COUNT( date )
FROM Superior
WHERE date >= '2012-06-26'
AND date < '2012-06-30'
AND Avail > '0'
UNION
SELECT RoomType, COUNT( date )
FROM Deluxe
WHERE date >= '2012-06-26'
AND date < '2012-06-30'
AND Avail > '0'
UNION
SELECT RoomType, COUNT( date )
FROM SuperDeluxe
WHERE date >= '2012-06-26'
AND date < '2012-06-30'
AND Avail > '0'
GROUP BY date
HAVING COUNT( 4 )
看来我越来越近了。我尝试了 MAX( date ) 它给出了有 4 行的日期,但它仍然显示 1 行 Avail > 0 的房间类型
我也试过 HAVING COUNT(DISTINCT date) =4 结果仍然显示字段日期,行数不等于 4