【发布时间】:2021-10-13 06:22:19
【问题描述】:
我有一个包含多条记录的 SQL 表。 用户将给出起始日期(取车)、截止日期(下车)和车辆 ID。
理想的查询是查看记录并检查这些日期的特定 VehicleID 是否已预订。请注意,预订有状态。如果状态为“待定”或“已确认”,则应将其视为已预订/不可用。 另一方面,如果状态为“已取消”或在给定日期没有该 VehicleID 的记录,则应将其视为免费/可预订。
我之前在查询没有太多参数时问过这个问题,但是添加这些参数后我完全迷失了。
这是我的 sqlfiddle:http://sqlfiddle.com/#!9/b794c1/2/0
这是似乎返回错误数据的查询:
SELECT
CASE
WHEN y.BookingID IS NOT NULL THEN '0'
ELSE '1'
END availability
FROM (SELECT 1)x
LEFT JOIN tbl_bookings y
ON FromDate <= '2021-12-22'
AND ToDate > '2021-12-15'
AND VehicleID='1009'
AND Status !='Pending'
AND Status !='Confirmed'
【问题讨论】:
-
样本数据、所需结果和适当的数据库标签都会有所帮助。