Recherche intervalle de dates

Onig20 Messages postés 4 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 7 mai 2008 - 23 nov. 2007 à 03:38
Onig20 Messages postés 4 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 7 mai 2008 - 23 nov. 2007 à 18:31
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 nov. 2007 à 07:55
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 ...
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 nov. 2007 à 10:52
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)
0
Onig20 Messages postés 4 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 7 mai 2008
23 nov. 2007 à 18:31
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
0
Rejoignez-nous