OVH Cloud OVH Cloud

PB Dates

1 réponse
Avatar
Gomez Jean-Jacques
Bonjour =E0 tous

=C9nonc=E9e du PB:

N personnes ont des p=E9riodes d'activit=E9 born=E9es par un=20
date de d=E9but et de fin.

Une m=EAme personne peut avoir plusieurs p=E9riodes=20
d'activit=E9.

Je voudrais trouver pour une date de d=E9but et de fin=20
donn=E9e les personnes inactives.

Merci pour votre r=E9ponse.

1 réponse

Avatar
Evaro
Bonjour Jean-Jacques,

"Gomez Jean-Jacques" a écrit dans le message de
news: 08bc01c367bd$94a33670$
Bonjour à tous

Énoncée du PB:

N personnes ont des périodes d'activité bornées par un
date de début et de fin.

Une même personne peut avoir plusieurs périodes
d'activité.

Je voudrais trouver pour une date de début et de fin
donnée les personnes inactives.



Je commencerais par une requête création d'une table temporaire












































ztActivite, comprenant l'identifiant de la personne avec toutes les
périodes d'activités comprises au moins partiellemnt dans la période
demandée :

SELECT T_Activite.Id_Personne, T_Activite.Debut, T_Activite.fin INTO
ztActivite
FROM T_Activite
WHERE (((T_Activite.Debut) Between [Début Période ?] And [Fin Période ?]))
OR (((T_Activite.fin) Between [Début Période ?] And [Fin Période ?])) OR
(((T_Activite.Debut)<=[Début Période ?]) AND ((T_Activite.fin)>=[Fin
Période ?]));

Ensuite, je chercherais depuis la table des personnes celles qui sont
absentes de ma table temporaire :
(Requête de non correspondance) :

SELECT T_Personne.Id_Personne, T_Personne.Nom_Personne
FROM T_Personne LEFT JOIN ztActivite ON T_Personne.Id_Personne ztActivite.Id_Personne
WHERE (((ztActivite.Id_Personne) Is Null));

@ +
Etienne
Charte du forum: http://users.skynet.be/mpfa/charte.htm