2010-02-08 9 views
1

Est-ce que SQL Server 2005 prend en charge ANY ou EVERY avec HAVING?AYANT ET AYANT TOUS

Supposons que j'ai deux tables:

Training(TrainingID, TrainingCloseDate) and 
TrainingDetail(TrainingDetailID, TrainingID, LKClassCode, CompletionDate). 

Pour un TrainingID, il peut y avoir plusieurs valeurs dans TrainingDetail avec différents LKClassCode. Je dois trouver tous les TrainingID qui ont au moins un TrainingDetailID avec CompletionDate entre le 1/1/2009 et le 1/1/2010.

Quand j'ai essayé avec HAVING ANY, je me suis une erreur:

Incorrect syntax near the keyword 'ANY'. 

S'il est pas pris en charge, pourriez-vous s'il vous plaît proposer une alternative?

si je dois trouver tous les TrainingID « s qui ont » au moins un TrainingDetailID avec CompletionDate entre 1/1/2009 et 1/1/2010 ou TrainingCloseDate = « 5/5/2009 » « ?

Répondre

0

Je dois trouver toutes les « s qui TrainingID ont au moins un TrainingDetailID avec CompletionDate entre 1/1/2009 et 1/1/2010.

SELECT TrainingID 
FROM TrainingDetail 
WHERE CompletionDate BETWEEN date1 AND date2 

Vous pourriez avoir besoin de convertir des dates au format approprié (horodatage?).

si je dois trouver toutes les « s qui ont » TrainingID au moins un TrainingDetailID avec CompletionDate entre 1/1/2009 et 1/1/2010 ou TrainingCloseDate = « 5/5/2009 » « ?

SELECT TD.TrainingID 
FROM TrainingDetail TD 
    JOIN Training T ON T.TrainingID = TD.TrainingID 
WHERE (CompletionDate BETWEEN date1 AND date2) OR TrainingCloseDate = '5/5/2009' 
Questions connexes