|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : août 2007 Messages : 122 ![]() |
Bonjour ;
J'ai une table de congés, avec une date de début, une date de fin. Je souhaite extraire les dates incluses dans cette table, sélectionnées de date à date. exemple : x pose ses congés du 12/11/2010 au 15/12/2010 y pose ses congés du 10/12/2010 au 22/12/2010 et z pose ses congés du 18/12/2010 au 05/01/2011 Je voudrai une requête qui me fait apparaître, pour une sélection du 01/12/2010 au 31/12/2010 : pour x du 01/12/2010 au 15/12/2010 pour y du 10/12/2010 au 22/12/2010 et pour z du 18/12/2010 au 31/12/2010 le must serait que le nombre de jours ouvrables soit calculé, pour chaque ligne, entre les deux dates sélectionnées.Là, ça dépasse mes compétences - mais j'ai essayé... en vain C'est pourquoi je compte sur votre aide. Merci d'avance Sylvain |
|
|
10
|
|
|
#2 | ||
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 456 ![]() |
Bon pour commencer on peut trouver les périodes dans la plage comme suit :
Code sql :
Touve les vacances qui commencent ou finissent dans la période choisie ou qui 'encadrent' la période choisie. Pour 'Couper' les bouts qui dépassent. Code sql :
[DateDebutVacancesCalculee]:iif([DateDebutVacances]<[DateDebutPeriode];[DateDebutPeriode];[DateDebutVacances]) Code sql :
[DateFinVacancesCalculee]:iif([DateFinVacances]>[DateFinPeriode];[DateFinPeriode];[DateFinVacances]) Maintenant il te suffit d'afficher [DateDebutVacancesCalculee] et [DateFinVacancesCalculee] pour avoir les périodes cherchées. pour calculer le nombre de jours ouvrables je pense qu'il y a déjà un sujet là dessus soit dans la FAQ soit dans le forum lui-même. C'est un peu plus compliqué que le nombre de jours car il faut tenir compte des congés légaux à date fixe (ex pour la France : 1er mai, 14 Juillet) et ceux à date variable (ex pour la france : lundi de paques, vendredi de paques) et cela se fait très bien avec une fonction définie par l'utilisateur. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
||
|
|
10
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : août 2007 Messages : 122 ![]() |
Merci marot_r
Je vais essayer ça en fin de semaine, probablement ce week-end. ça correspond effectivement à ce que je souhaite. Je vous tiens au courant. En attendant, d'autres suggestions ou commentaires sont les bienvenus Bonne soirée Sylvain |
|
|
00
|
|
|
#4 | ||
|
Membre à l'essai
![]() Inscription : août 2007 Messages : 122 ![]() |
Bonsoir marot_r
Tout d'abord, meilleurs voeux à tous pour cette nouvelle année ! ![]() Et l'année commence bien, car tes instructions fonctionnent ! J'ai un peu galéré sur la première instruction. Code :
Quelques modif à appliquer aussi entre les iif et VraiFaux, BETWEEN et Entre... Enfin, ça fonctionne. Merci encore Sylvain |
||
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : août 2007 Messages : 122 ![]() |
Bonsoir à tous ;
Je reviens vers vous pour le cacul du nombre de jours entre deux dates. J'ai créé dans une table un calendrier des jours ouvrables / fériers (1 pour travaillé, 0 pour férier) à partir de ma table congés dateDébut et DateFin, comment puis-je cumuler le nombre de 1 entre ces deux dates ? Merci de votre aide Sylvain |
|
|
10
|
|
|
#6 | ||
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 456 ![]() |
Code sql :
OR ([DateDebutVacances] < [DateDebutPeriode] AND [DateFinPeriode] < [DateFinVacances]) Il n'y a pas d'erreur de signe, ceci gère le cas où ta période choisie est entièrement comprise dans une période de vacances. Avec ce que tu as mis tu vas rammasser l'équivaent de Code sql :
Pour le calcul des jour travaillés as-tu fais la recherche que je te suggérais ? Si tu as un calendrier qui couvre toutes les dates 365j ou 366j/an, le plus simple est d'additionner les indicateurs du calendrier qui sont compris entre date de début et date de fin. Cela va te donner exactement le nombre de jours travaillés. Tu peux simplement faire un produit croisé entre ta requête des périodes et ta table calendrier. Ce n'est pas la méthode la plus efficace mais si tu n'as pas un gros volume de données cela ne devrait pas vraiment avoir d'impact. Pour la sélection tu mets [dateCalendire] between [dateDebut] and [dateFin]. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
||
|
|
10
|
|
|
#7 |
|
Futur Membre du Club
![]() |
Merci marot_r et merci papagei2 cette discussion m'était très utile dans mon boulot , c'est très intéressant
![]() je m'interresse beaucoup à access et je vais essayer de rechercher à fond de tout ce qui se trouve dans ce site formidable !!! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com