我有一个汽车租赁数据库,我正在尝试运行一个查询,返回两个日期之间可用的车辆。即开始和结束日期。我只想看看我进入的特定日期有哪些车辆可用。
我无法让它运行。它目前只是返回所有车辆,而不是在日期之间。租用的车辆不应该影响查询,但它位于中间。
我将发布设计:
样品:
SELECT v.*
FROM vehicles AS v
LEFT JOIN (SELECT b.*
FROM booking AS b
WHERE b.end_rent_date >= 2016-12-09 and b.start_rent_date <= 2016-12-18
) AS b ON v.vehicle_id = b.vehicle_id
WHERE b.vehicle_id is null
答案 0 :(得分:1)
问题在于内部查询中的日期。我没有在MS SQL上遇到这种情况的错误,所以你可能正在使用这个RDBMS。简单地说,将日期放在引号中,以便将转换工作日期正确。
SELECT v.*
FROM vehicles AS v
LEFT JOIN (SELECT b.*
FROM booking AS b
WHERE b.end_rent_date >= '2016-12-09' and b.start_rent_date <= '2016-12-18'
) AS b ON v.vehicle_id = b.vehicle_id
WHERE b.vehicle_id is null