【发布时间】:2013-04-25 09:49:44
【问题描述】:
我只想选择与查询不匹配的数据。
假设我有两张桌子:
汽车:
id int PRIMARY KEY IDENTITY
make varchar(255) NOT NULL
model varchar(255) NOT NULL
pricegroup varchar(1) NOT NULL
租金:
id int PRIMARY KEY IDENTITY
sdate date NOT NULL
edate date NOT NULL
car_id int NOT NULL
Rentals 中的
sdate 是租赁的开始日期 - edate 是结束日期。
我想查找指定时间段内所有可用的汽车。
这个查询几乎可以工作:
SELECT * FROM cars WHERE id NOT IN
(SELECT car_id FROM rentals WHERE sdate <='2013-04-28' AND edate >='2013-04-30')
但是,它仅适用于特定日期。如果您输入 2013-04-25 和 2013-05-30 之间的时间段,所有汽车都会显示,即使其中一些在此期间已被预订。 p>
我使用 MS SQL 2012。
【问题讨论】:
标签: sql date select sql-server-2012