2010-01-21 6 views
0

다음은 내 쿼리연합 (EU)은 2005

방법 위의 쿼리 결과 구별 vehicleId을 선택하는
Select vehicleID from trip where (StartingDate between ''+ convert(varchar(10), @StartDate,111) +'' and ''+ convert(varchar(10), @EndDate,111)+'') 
or (enddate between ''+ convert(varchar(10), @StartDate,111) +'' and ''+ convert(varchar(10), @EndDate,111)+'') 
or(StartingDate <= @StartDate and enddate >= @EndDate) 
UNION 
Select vehicleID from VehicleMaintenance where (FromDate between ''+ convert(varchar(10), @StartDate,111) +'' and ''+ convert(varchar(10), @EndDate,111)+'') 
or (todate between ''+ convert(varchar(10), @StartDate,111) +'' and ''+ convert(varchar(10), @EndDate,111)+'') 
or (FromDate <= @StartDate and todate >= @EndDate) 
) as vehicle 

....입니다

+0

흠 ... 유니온 statment는 유일한 레코드를 반환해야합니다, 누락 된 쿼리의 일부입니까? – Kane

답변

1

UNION 중복을 제거합니다 (UNION ALL 반면하지 않습니다) , 그래서 당신은 이미 고유 한 차량 ID가 있어야합니다