|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Étudiant Inscription : août 2011 Messages : 3 ![]() |
Bonjour,
c'est encore une question sur des calculs de rang, mais c'est un peu plus compliqué que la simple question de classement d'élèves par rapport a leur notes je travail sur une base de données permettant de gerer la reproduction des vaches laitières, c'est assez exotique en effet. Nénamoins je reste bloqué sur les éléments suivants A partir de la table, VELAGE (Id_velage, date_velage, ref_animal) Je souhaite calculer le rang de chaque vêlage pour chaque animal : Id_velage ref_animal date_velage N°_velage (rang) 1 5060 01/01/2000 1 2 5060 15/02/2001 2 3 5060 10/03/2002 3 4 7080 02/03/2000 1 5 7080 11/05/2001 2 6 9010 01/03/2011 1 C’est le nombre de dates de vêlage qui sont inférieurs à la date de vêlage elle-même +1, dans la série de vêlage de l’animal. C’est ce que je n’arrive pas à transcrire dans la requête. Par ailleurs je souhaite réaliser le même calcul pour les Inséminations : INSEMINATIONS (Id_insemination, date_IA, ref_animal) Par contre pour les inséminations, la numérotation repart à 1 après chaque vêlage, puisque la chronologie est la suivante : (ex) pour l'animal 5060 IA 1 15/03/1999 IA 2 10/04/1999 VELAGE 1 01/01/2000 IA1 01/05/2000 IA2 22/03/2000 IA3 01/06/2000 VELAGE 2 15/02/2001 IA1 01/07/2001 VELAGE 10/03/2002 IA1 ... VELAGE et INSEMINATION sont reliés par ANIMAL (N°animal, date_naissance, date_reforme, cause_reforme) de plus un animal peut être inséminé deux fois le même jours, mais il faut que le rang d'insémination soit différent , on ne doit pas avoir IA1 IA2 IA2 IA4 merci d'avance pour vos contributions |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 415 ![]() |
bonsoir,
dans un état, tu pourrais utiliser l'astuce de Papy Turbo: Comment insérer un n° de ligne dans un état ?
__________________
L'informatique fait son grand retour au lycée... |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Étudiant Inscription : août 2011 Messages : 3 ![]() |
merci f-leb,
mais ce la ne donne pas le résultat attenu. en effet si je tri par date et j'ajoute dans l'état un numéro de ligne j'obtiens le rang de la date sur la totalité des dates. Mais ce que je veux obtenir c'est le rang de la date de vêlage d'un animal comparé à l'ensemble des dates de vêlage du même animal. cela serait comme des boucles de comptage dans la table... |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 415 ![]() |
Bonjour,
dans l’état, il faut ajouter un regroupement sur ref-animal. Avec l’état en mode création, cliquer sur le bouton "Regrouper et trier" dans le ruban. Ajouter le regroupement sur ref_animal puis le tri sur la date. La textBox avec le compteur doit être dans la zone Détail du groupe ref_animal.
__________________
L'informatique fait son grand retour au lycée... |
|
00
|
|
|
#5 | ||||
|
Membre Expert
![]() ![]() Inscription : avril 2006 Messages : 1 318 ![]() |
Une alternative par requête s'il n'y a pas trop de bestiaux, d'insémination ou de velage car ça risque d'être rapidement lent...
Requete pour l'ordre des velages par meuh :Code :
:Code :
Philippe |
||||
|
10
|
|
|
#6 |
|
Invité de passage
![]() Étudiant Inscription : août 2011 Messages : 3 ![]() |
effectivement pour l'état je n'avais pas fait le regroupement, mais je dois pouvoir utiliser ces résultats pour la suite, donc l'état ne me satisfait pas.
merci qd même Par contre les requêtes apportent quelque chose de pas mal, mais c'est vrai que ça fait beaucoup de résultats, plus de 7000. Si je garde les enregistrements jusque 3 ans, cela fera environ 9000 inséminations et 2000 vêlages... je pense que je vais avoir un petit poblème d'efficacité mais je ne sais pas comment faire autrement, je ne connais rien en programmation... en tout cas merci |
|
|
00
|
|
|
#7 | |
|
Membre Expert
![]() ![]() Inscription : avril 2006 Messages : 1 318 ![]() |
J'ai réalisé une simulation avec + de 26000 IA et vêlages, le temps est de quelques secondes sur mon ordi.
A noter que des index avec doublons (sur champ ref_animal en particulier) peuvent améliorer les performances. Possibilité aussi d'éliminer de la requête avec une clause where supplémentaire les animaux réformés, etc... Citation:
Ma base de test (.mdb) ici. Bon courage, Philippe |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com