0
j'ai deux tables D1 et D2SQL Server: Trouver la plage de dates
DI a:
ID num startdate enddate Status
P10 B123 2002-01-01 2009-04-06 NULL
P11 B124 2006-05-06 2008-07-01 NULL
P12 B125 2010-05-05 2015-04-04 NULL
D2 a: (tableau de référence)
ID num startdate enddate
P10 B123 2010-01-01 2012-04-06
P11 B124 2007-05-06 2010-07-01
P12 B125 2007-05-05 2008-04-04
Maintenant, la mise à jour statut D1 comme 'échoue' si pour la même [num]
dans D2, il a une plage de dates qui se chevauchent. La plage de dates est enddate - startdate
.
Donc, toute plage de dates dans D1 avec le même [num]
ne doit pas toucher ou exister dans les plages de dates du tableau D2.
Résultat attendu:
ID num startdate enddate Status
P10 B123 2002-01-01 2009-04-06 NULL
P11 B124 2006-05-06 2008-07-01 FAIL
P12 B125 2010-05-05 2015-04-04 NULL
Merci
dire avec [num] ABC123 nous avons la plage de dates en 2004-2005 dans D1. Donc, avec [num] ABC123, il peut autoriser n'importe quelle date avant 2004 et après 2005. Échec si la période est en 2004-2005 –