2017-03-10 1 views
0

UPDATE 문의 하위 쿼리를 어떻게 사용할 수 있습니까? 여기 내 쿼리입니다 '. UPDATE에서 FROM 절 및 하위 쿼리 소스 또는 조인을 포함 할 수 없습니다 DELETE 문'나는 오류가하위 쿼리 SQL Server

UPDATE car_availability 
SET availability_status = 'GOOD' 
FROM car_trip AS TRIP 
WHERE car_availability.car_no = TRIP.car_no 
AND NOT EXISTS (SELECT DISTINCT A.car_No 
       FROM car_maintenance A 
       WHERE A.car_no = TRIP.vehicle_id 
       AND start_date = TRIP.workday) 
AND EXISTS (SELECT DISTINCT B.car_No 
      FROM car_maintenance B 
      WHERE B.car_no = TRIP.vehicle_id 
      AND end_date IS NOT NULL) 

car_maintenance에 car가 있고 어떤 start_date가 car_trip의 근무일과 같고 car_maintenance에 종료 날짜가있는 자동차가 null이 아닌 GOOD로 업데이트하려고합니다.

+0

이 중복 질문, 당신은 여기에 답변을 얻을 : http://stackoverflow.com/a/2334741/3270427 – McNets

+0

@McNets - 나는 INNER도 가입 할 수 없습니다. 나는 SQL Server 2016을 사용하고있다. –

+1

주의 깊게 읽으면 FROM 절에'car_availability'를 추가해야한다. – McNets

답변

0

@McNets가 말했듯이 FROM 절에 car_availability 테이블을 추가해야합니다. 이 시도 :

UPDATE CA 
SET availability_status = 'GOOD' 
FROM car_availability CA 
JOIN car_trip AS TRIP ON CA.car_no = TRIP.car_no 
WHERE NOT EXISTS (SELECT DISTINCT A.car_No 
       FROM car_maintenance A 
       WHERE A.car_no = TRIP.vehicle_id 
       AND start_date = TRIP.workday) 
AND EXISTS (SELECT DISTINCT B.car_No 
      FROM car_maintenance B 
      WHERE B.car_no = TRIP.vehicle_id 
      AND end_date IS NOT NULL)