IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

numéroter les lignes ayant la même valeur dans une requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 20
    Par défaut numéroter les lignes ayant la même valeur dans une requête
    Bonjour
    Dans ma base de donnée pour la gestion des courses,

    j'ai créé une table élève avec comme champs :
    dossard_el, NOM_el, Prénom_el, sexe_el, date de naiss_el, établissement_el, catégorie_el.

    une table épreuves
    code_ep, libellé_ep, initiale_ep

    Une table participe avec comme champs
    dossard_el, libellé_ep

    les 2 tables eleve et epreuves sont donc en relation avec la table participe puisque chaque élève participe à une ou plusieurs épreuves.

    dans une requête "courses 100m Pupilles Filles" qui regroupe tous les élèves de la catégorie Pupilles Filles participants à l'épreuve du 100m je voudrais numéroter automatiquement les élèves d'un même établissement, mais dès que l'établissement change et bien la numérotation reprend à 1

    Voici à quoi la requete devrait ressembler:

    dossard ! NOM ! Prénom ! établissement ! Numéro ! epreuve !
    10501 ! LILI ! Lolo ! hilaire ! 1 ! 100m
    10502 ! LALA ! xxxxx ! hilaire ! 2 ! 100m
    10507 ! LOLO ! yyyy ! hilaire ! 3 ! 100m
    10510 ! MAMA ! uuuu ! hilaire ! 4 ! 100m
    20503 ! MIMI ! iiii ! Saint Xavier ! 1 ! 100m
    20505 ! MUMU ! ooo ! Saint Xavier ! 2 ! 100m
    20508 ! MOMO ! ooo ! Saint Xavier ! 3 ! 100m

    J'espère avoir été claire, j'ai essayé la fonction dcount() mais celle-ci affiche le nombre d'élève ayant le même établissement, 4 pour hilaire et 3 pour saint Xavier.

    Merci encore de m'aider

    Raiamanu

  2. #2
    Membre Expert
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Par défaut
    j'ai essayé la fonction dcount() mais celle-ci affiche le nombre d'élève ayant le même établissement
    Car tu n'as pas mis la bonne condition certainement.
    Utilise le numéro de dossard dans ta condition. Tu auras ainsi le nombre de personne du même établissement ayant un numéro de dossard inférieur, chiffre à quoi tu ajoute 1 pour avoir ton "Numéro".

    En espérant t'aider.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 20
    Par défaut
    Merci beaucoup pour ta réponse

    ce que tu me dis je l'ai déja fait et ça marche pour numéroter les élèves avec leur dossard, voici la formule que j'ai utilisé :

    DCount("*","courses V1 PuF","eleve.dossard_el <" & [eleve.dossard_el])+1 AS Classement

    Mais moi ce que je veux c'est numéroter les élèves d'un même établissement et quand l'établissement change la numérotation reprend à 1.
    exemple : si j'ai 4 élèves de l'école Hilaire on les numérote de 1 à 4 puis si dans la même requête j'ai 3 élèves de l'école Saint-Xavier et bien on les numérotre de 1 à 3.

    merci

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    PARAMETERS [laquelle] Text ( 255 );
    SELECT temp.*, 
    (select count(dossard) from
    (SELECT participe.dossard, etablissement
    FROM participe INNER JOIN eleve ON participe.dossard = eleve.dossard
    WHERE lib=[laquelle]) as tempb
     where dossard<=temp.dossard and etablissement=temp.etablissement) AS numero
    FROM  (SELECT participe.dossard, nom, prenom, etablissement, lib
    FROM participe INNER JOIN eleve ON participe.dossard = eleve.dossard
    WHERE lib=[laquelle])  AS temp;

  5. #5
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 20
    Par défaut
    merci pour la réponse

    je teste sur ma base et je te mets au courant !

    même si je comprends pas grand chose au code SQL

    mais bon il faut bien commencer un jour non ?

    merci encore

  6. #6
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 20
    Par défaut
    ça marche !!!

    t'es le meilleur

    j'ai copié le code sql que tu m'a passé, j'ai modifié les nom de champs comme (dossard en dossard_el) mais il me demande de donner une valeur pour "laquelle" et "lib".
    Alors j'ai mis à tout hasard la valeur 1 pour tous les deux et ça a donné ce que je voulais !!!!

    J'ai juste une dernière question, à quoi correspondent "laquelle" et "lib" ?

    merci beaucoup encore pour le coup de pouce !!!

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    laquelle est un paramètre qui permet de choisir la compétition
    lib correspond à libellé_ep

  8. #8
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 20
    Par défaut
    Salut !

    Si je comprends bien il faut que je remplace lib par libellé _epr dans le code sql ?

    et dans (laquelle) qu'est que je dois mettre ?

    merci encore

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    en fait laquelle est la compétition que tu veux examiner

    c'est donc un des items de libellé _epr

  10. #10
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 20
    Par défaut
    super !!

    j'ai remplacé tous les lib par libellé_epr

    et dans (laquelle) je mets le code approprié pour l'épreuve que je veux visionner et POUF la liste de tous les élèves effectuant l'épreuve sélectionnée s'affichent et les établissements sont alternés un vrai miracle !!

    Mais...

    Excuse moi encore de te déranger car au tout début de la discussion j'ai oublié de préciser que je voulais aussi pouvoir filtrer par catégorie.
    Par exemple avoir la liste de tous les élèves de la catégorie minimes filles qui font le 100m biensur avec les établissements que s'alternent.

    Merci encore de ton aide et de répondre aussi rapidement !

    Raiamanu

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    à vue d'oeil en remplacant

    WHERE lib=[laquelle] par
    WHERE lib=[laquelle] and catégorie_el=[ckoilacategor] et
    PARAMETERS [laquelle] Text ( 255 );
    par
    PARAMETERS [laquelle] Text ( 255 ),PARAMETERS [ckoilacategor] Text ( 255 );

    ca devrait aller (non testé)

  12. #12
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 20
    Par défaut
    chalut !!!!

    j'ai testé et il me met un message d'erreur : erreur de syntaxe dans la clause PARAMETER

    Merci de m'aider !


  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    exact

    PARAMETERS [laquelle] Text ( 255 ), [ckoilacategor] Text ( 255 );

    ira mieux

  14. #14
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 20
    Par défaut
    Voici le code avec toutes les modifications apportées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PARAMETERS [laquelle] Text ( 255 ), [ckoilacategor] Text ( 255 );
    SELECT temp.*, (SELECT count(dossard_el) FROM (SELECT participe.dossard_el, code_eta FROM participe INNER JOIN eleve ON participe.dossard_el = eleve.dossard_el WHERE libellé_epr=[laquelle] and code_cat=[ckoilacategor]) AS tempb  WHERE dossard_el<=temp.dossard_el AND code_eta=temp.code_eta) AS numero
    FROM (SELECT participe.dossard_el, nom_el, prénom_el, code_eta, libellé_epr FROM participe INNER JOIN eleve ON participe.dossard_el=eleve.dossard_el WHERE libellé_epr=[laquelle] and code_cat=[ckoilacategor])  AS temp;
    lorsque je l'exécute il me demande de donner une valeur pour "Laquelle" et "ckoicategor" (jusque là tout va bien)
    puis il me met "erreur de syntaxe dans la clause PARAMETER"

    merci de m'aider

    Raiamanu

  15. #15
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 20
    Par défaut
    hi hi hi ça MARCHE !!!!!!!


    c'est que du bonheur !!! Random tu m'enlèves une grosse épine du pied !!

    Merci beaucoup de ton aide !!

    en fait y avait pas de prob j'ai juste redémarré l'ordi et POUF ton fonctionne à merveille !!

    Merci encore !!!!!

    Trop top ce forum, rapidité, compétence...

    Raiamanu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/12/2012, 13h14
  2. Réponses: 1
    Dernier message: 24/08/2011, 18h33
  3. [XL-2003] Recherche d'une même valeur dans une autre feuille
    Par Rrrroh dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/06/2010, 09h03
  4. Réponses: 2
    Dernier message: 21/04/2009, 08h16
  5. Réponses: 17
    Dernier message: 11/03/2009, 09h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo