작업중인 프로젝트에 대한 SQL 문을 작성하려고합니다. 렌트 테이블에 그 날짜에 예약되지 않은 올바른 크기의 차량 인 vehicleId
을 모두 반환해야합니다.겹치지 않는지 확인하십시오.
스키마
Vehicles(vehicleId, size)
Rental(rentId, customerId, vehicleId, startdate, enddate, cost)
SELECT vehicles.vehicleId
FROM vehicles
WHERE vehicles.size= "van"
AND vehicles.vehicleId <>
(SELECT rental.vehicleId
FROM rental
WHERE (rental.startdate BETWEEN '2016-04-27' AND '2016-04-30')
OR (rental.enddate BETWEEN '2016-04-27' AND '2016-04-30'))
전과
명령문의 첫 번째 부분, AND (관련 2 개의 테이블)의 후 사이즈 밴과 두 번째 부분에 모든 vehicleid를 반환하고, 하나를 제거해야합니다 시작일 또는 종료일이 겹침 여부를 확인하여 시간 프레임에서 예정된 차량 ID입니다. 그러나 두 번째 부분은 그처럼 작동하지 않으며 실행하면 모든 것이 반환되지 않습니다.
진술에 어떤 문제가 있습니까?
에 따옴표를 추가했으나 여전히 문을 반환하지 않습니다. (변경을 반영하기 위해 위에서 편집 됨) –
하위 쿼리가 여러 행의 데이터를 반환 할 수 있다면'<>'대신'not in '을 원할 수도 있습니다. –
내가 필요로하는 것이 었습니다. 고마워. 나는 내가 인정하는 것보다 오랫동안 이것에 붙어 있었다. –