Recherche intervalle de dates

Signaler
Messages postés
4
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
7 mai 2008
-
Messages postés
4
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
7 mai 2008
-
Bonjour,

J'ai de la difficulté à trouver la solution à ce problème. Je crée une application dans le domaine agricole.

J'ai une base de données Access 2000. J'utilise une table avec les colonnes suivantes entre autres: troupeau(TROUP), animal(NUM), date de saillie(SAIL). Je peux avoir plusieurs lignes pour le même animal dans la BD avec différentes dates de saillie.

J'utilise VB.NET 2003 pour afficher certaines statistiques sur les troupeaux. Je veux être capable de compter pour chaque animal dans le troupeau sélectionné, les saillies qui sont à l'interieur de 8 jours une de l'autre.

Je voudrais savoir si une requête SQL pourrait m'extraire les résultats recherchés et si oui, m'expliquer comment la créer. Sinon, est-ce que la solution serait de transférer le TROUP, NUM et SAIL dans un objet comme un dataview,datagrid ou table et de faire une boucle pour vérifier chaque ligne pour un animal donné et vérifier si la date de saillie est bien à l'interieur de 8 jours une de l'autre ?

J'aimerais avoir une solution qui permettrait d'être le plus efficace possible donc qui pourrait traiter beaucoup de données en peu de temps.

Merci pour votre aide!

Onig20

3 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
tu peux bien evidemment faire une comparaison de dates, en SQL ...

"... WHERE SAIL < #11/17/2007# "

et hop ! date de la saillie inférieure à 8 jours ...
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut
En complément à ce qu'a proposé RenField, je crois que certaines fonctions VB existent aussi dans le SQL de Access :
Exemple : ceci te fournira les fiches dont les dates sont comprises entre maintenant et les 8 prochains jours.
Adapte-le à ton problème
   "... WHERE SAIL Between Maintenant And DateAdd("d", 8, Maintenant)"
Remplace éventuellement Maintenant par Now.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
4
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
7 mai 2008

Bonjour,

Premièrement merci à Renfield et à Jack pour vous avoir penché sur mon problème.

J'ai un petit problème avec se que vous me proposez. Je crois que j'avais mal décrit le problème malgré la longueur de mon texte.

Je peux avoir plusieurs lignes pour le même animal et plusieurs dates de saillie. Je ne veux pas vraiment comparer les dates de saillie avec aujourd'hui mais bien entre elle.

Exemple:
Animal: 333   SAIL: 22-04-2007
Animal: 333   SAIL: 25-07-2007
Animal: 333   SAIL: 29-07-2007
Animal: 333   SAIL: 07-10-2007
Aniaml: 444   SAIL: 09-10-2007

Donc je devrais avoir, pour l'exemple ci-dessus, un retour de 1 car j'ai deux dates à l'interieur de mon 8 jours. Pour l'exemple ci-dessus, Il ne devrais pas me retourner 1 pour la 333 et la 444 qui est à moins de 8 jours car se n'est pas pour le même animal. J'espère que je suis plus clair.

Merci!

Onig20