2010-01-21 4 views
0

Voici ma requêteUnion dans SQL Server 2005

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 

comment sélectionner VehicleID distinct du résultat de la requête ci-dessus ....

+0

Hmmm ... en utilisant une déclaration syndicale ne devrait retourner que les enregistrements distincts, fait partie de la requête manquante? – Kane

Répondre

1

Notez que UNION va supprimer les doublons (alors que UNION ALL pas) , donc vous devriez déjà avoir des ID de véhicule uniques