2010-03-10 4 views
1

J'ai un tableau des prix avec une date de début, une date de fin et un prix. Je souhaite qu'une recherche passe dans une plage de dates et renvoie un prix pour tous les jours de cette plage. La plage de dates peut s'étendre sur plusieurs prix, mais ne comporte aucun espace intermédiaire.Requête SQL pour vérifier TOUS les jours existent entre une plage de dates

Est-ce possible?

Prices 
startDate datetime 
endDate datetime 
price 

DECLARE @startDate datetime = '2010-04-01', 
     @endDate datetime = '2010-04-30' 

SELECT * FROM Prices WHERE @startDate BETWEEN startDate AND endDate... 
+1

Ceci est une copie exacte d'un question posée ici plusieurs fois. Voir ici: http://stackoverflow.com/questions/271595/getting-dates-between-a-range-of-dates – David

+0

Merci, je ne cherchais évidemment pas la bonne chose. – markvpc

+0

En fait, je pense que c'est différent. Vous n'avez pas besoin de connaître toutes les dates pour répondre à cette requête. – RedFilter

Répondre

2

Ajouter un groupe à votre requête avec une déclaration ayant:

HAVING COUNT(*) = DATEDIFF(DAY,@StartDate,@EndDae)+1 
Questions connexes