J'ai une table de rendez-vous avec des rendez-vous pour un certain nombre de 'ressources' ce que je dois faire est d'interroger cela et retourner (pour une ressource particulière) tous les emplacements de rendez-vous libres sur une plage de dates.tsql intesect entre 2 jeux d'enregistrements datetime
Je pensais que la meilleure façon d'aborder cela serait de générer une table temporaire des heures possibles de rendez-vous (comme la durée du rendez-vous peut être 30/60/90 minutes - la durée du rendez-vous serait spécifiée pour la requête). puis sélectionnez l'intersection de ces deux jeux d'enregistrements. c'est-à-dire toutes celles-ci - dans la plage de dates - où il n'y a PAS de nominations dans le tableau des nominations. retournant ainsi tous les rendez-vous possibles pour cette ressource.
ou peut-être simplement - de nouveau - générer les enregistrements de dates de rendez-vous possibles, et ensuite les rendez-vous réels déjà réservés ..?
à moins bien sûr que quelqu'un puisse suggérer une option plus facile.
pas non plus tout à fait sûr comment générer la table de la table-à-dire possibles avec des enregistrements pour 2010-12-08 09:00, 2010-12-08 10:00,
et ainsi de suite (pour les rendez-1 h) ...
des idées?
modifier: ont une vague idée sur les ... possibles
DECLARE @startDate DateTime
DECLARE @EndDate DateTime
set @startDate = '2010-12-08 09:00'
set @endDate = '2010-12-11 09:00';
with mycte as
(
select cast(@startDate as datetime) DateValue
union all
select dateadd(mi,30,DateValue)
from mycte
where DateValue <= @endDate
and datepart(hh, dateadd(mi,30,DateValue)) Between 9 AND 16
)
select DateValue
from mycte
mal lire cela, merci – nat