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

Modélisation Discussion :

une bd pour gérer des test sportifs


Sujet :

Modélisation

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut une bd pour gérer des test sportifs
    Bonjour, j'aimerai crée une bd qui me permettent de rentrer les resultats de divers test de sport connu, et ainsi d'aprés ces résultats selon le sexe et la fourchette d'age de la personne, savoir si elle est APTE ou INAPTE.

    Donc pour cela j'ai crée une table PERSONNEL :
    Nom, Prénom, Date de naissance, et le choix du sexe

    une autre table RESULTATS :
    avec un champ pour les tests de sports
    un champ pour leur date de réalisation
    et un champ pour les résultats

    ensuite j'ai crée une requete AGE_PERSONNEL :
    avec ce champ "Age: DiffDate("aaaa",[p_Naissance],Maintenant())"
    qui me permet d'avoir l'age de la personne.

    mais je ne sais pas comment faire pour dire ;

    Si un homme à entre 18 et 23 et qu'il à un score entre 15 et 21 aux test de traction il est apte, sinon il est inapte.

    Je ne sai pas comment faire cela, je pense qu'il faut crée un requete ???

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 356
    Points
    34 356
    Par défaut
    bonjour,
    tu peux mettre dans tes requêtes des critères sur l'age et la note, exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE MaTable SET APTE=-1 WHERE AGE BETWEEN 18 AND 23 AND SCORE BETWEEN 15 AND 21
    Apte étant un champs Oui/Non, et où -1 signifie vrai, et 0 faux.

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut


    J'ai donc crée ma requéte qui d'aprés les valeurs rentrée dans une table, celle ci rempli la requete, ainsi comme on peut le voir sur la photo on a :
    - le nom de la personne
    - son age (calculé par la requete)
    - son sexe (Homme ou femme)
    - l'épreuve qu'il à fait (parmis les 6 épreuves disponibles ; Killy, tractions, pompes, luc leger, gainage, souplesse)
    - le résultat de l'épreuve
    - la date de la réalisation de l'épreuve
    - le nom de l'instructeur qui la noté
    - et enfin les 4 derniére case corresspande à la 1er 2éme 3éme ou 4éme séance qu'il réalise.



    Maintenant j'aimerais crée un mention APTE ou INAPTE d'aprés les résultats de l'épreuve qu'il réalise selon les critéres suivants :

    si il est de sexe masculin
    Pour l'épreuve du Killy :
    agé de 18 à 29 ans il est APTE si son résultat est compris entre 110 et 119.
    agé de 30 à 39 ans il est APTE si son résultat est compris entre 99 et 109
    agé de 40 à 49 ans il est APTE si son résultat est compris entre 86 et 95.

    Pour l'épreuve des pompes :
    agé de 18 à 29 ans il est APTE si son résultat est compris entre 18 et 19.
    agé de 30 à 39 ans il est APTE si son résultat est compris entre 15 et 17
    agé de 40 à 49 ans il est APTE si son résultat est compris entre 14 et 15.

    ect... pour les autres épreuve
    et si la personne est une femme les critéres de resultat change encore.

    Est ce que vous pensez que cela est réalisable ? avec les requetes, dois je crée une requéte pour chaque condition ? (il en faudrais plus de 50 dans ce cas !)
    et comment faire pour crée un champ dans ma requetes qui me définira si la personne est apte ou inapte ???

    Merci pour votre aide.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 356
    Points
    34 356
    Par défaut
    hello,
    tu peux te faire une table en plus du style
    T_Conditions
    iConditionID
    iAgeMin
    iAgeMax
    bHomme
    iScoreMin
    iScoreMax

  5. #5
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    d'accord et aprés comment jpeu faire pour que cela coincide avec ma requete ?

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 356
    Points
    34 356
    Par défaut
    ben tu mets dans ta requêtes toutes les conditions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Age between iAgeMin and iAgeMax
    Score between iscoremin and iscoremax
    etc.

  7. #7
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    d'accord j'ai crée ma table avec ces conditions mais maintenant comment faire corresspandre cela avec ma requete ?
    est surtout comme faire pour qu'il obtiennent la menssion APTE ou INAPTE ???

    voila ma table avec les conditions qui fixe la personne apte


    et voila ma requete avec la table condition mais comment insérer les conditons :


    et ce que tu me dis c'est de rentre tous "betwen" en code sql, mais je ne sais pas du tous ou placer ça dans tous ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [p_Nom] & " " & [p_Prenom] & " " & [p_Matricule] AS Nom, DateDiff("yyyy",[p_Naissance],Now()) AS Age, Personnel.p_sexe, Registre.r_epreuve, Registre.r_resultat, Registre.r_date, Registre.r_instructeur, Registre.r_seance1, Registre.r_seance2, Registre.r_seance3, Registre.r_seance4
    FROM Personnel INNER JOIN Registre ON Personnel.p_Num = Registre.r_nom
    WHERE (((Registre.r_seance1)=Yes) AND ((Registre.r_seance2)=No) AND ((Registre.r_seance3)=No) AND ((Registre.r_seance4)=No));

    Désolé pour ma difficulté de compréhension. merci pour ton aide

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 356
    Points
    34 356
    Par défaut
    salut,
    tu auras une requête du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Count(iCondition) FROM T_Condition, T_Personnel WHERE T_Personnel.AGE BETWEEN iAgemin AND iAgeMax AND iEpreuve='Killy' AND T_Personnel.bSexe = 'Homme' AND T_Personnel.iScore BETWEEN iScoreMin AND iScoreMax;
    je peux pas te donner plus d'exemple, mais tu récupères le count, s'il est = 0 alors inapte, si =1 alors apte.

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 554
    Points
    24 554
    Par défaut
    Bonjour,

    Pourquoi une valeur Max ?

    Si un homme de 40 fait plus de 95 au test de Killy est-il Inapte ?

    La question vaut le coup d'être posée, suivant la réponse on va pouvoir s'affranchir de tout un tas de contrainte where.

    Cordialement,

  10. #10
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    c'est vrai loufab il n'y a pas besoin de valeur max juste de valeur mini

    car une personne entre 18 à 29 ans est APTE si son résultat est supérieur à 110.

    comment écrire cela en SQL, dans ce cas iScoreMax n'est pas nécessaire, et donc par quoi remplacer BETWEEN

    et jpchek j'ai fait ce que tu ma dit mais j'obtient ce message :

    entrer une valeur de paramètre :
    iCondition



  11. #11
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 554
    Points
    24 554
    Par défaut
    Tous simplement remplacer le between Borne1 and Borne2 par

    pour du supérieur strict
    pour du supérieur ou égale
    On s'affranchi de la colonne Max.

    Je pense qu'en y regardant de plus près on peut encore apporter des améliorations (pour les tranches d'ages notamment).

    Peux-tu poster un exemple de tes données (juste les tables) ? si j'ai le temps je vais y regarder de plus près.

  12. #12
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    ok donc voila de quoi est constitué ma base de donnée :

    ma table condition qui fixe l'age et le score mini à atteindre sinon on est INAPTE:


    ma table personnel qui regroupe toutes les personnes, et qui fixe la date de naissance, et le sexe :


    ma table registre qui permet de rentrer les scores obtenu par les personnes au différents tests de sport avec la date de réalisation et le moniteur de sport :


    enfin la requete age_personnel qui affiche les resultats de la table personnel et la table registre tout en affichant le sexe et l'age :


    Ainsi je compte me servir de cette derniére requetes pour dire une personne :

    Pour l'épreuve du Killy :
    agé de 18 à 29 ans est APTE si son résultat est supérieur ou égal à 110 .
    agé de 30 à 39 ans est APTE si son résultat est supérieur ou égal à 99.
    agé de 40 à 49 ans est APTE si son résultat est supérieur ou égal à 86.
    etc.

    obtienne la mention APTE les autres la mention INAPTE.

    UN GRAND GRAND merci pour ton aide

  13. #13
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    Personne pour m'aider

  14. #14
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 554
    Points
    24 554
    Par défaut
    Affirmatif mon adjudant !

    Voici une ébauche : killy, homme, tout age, tout résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT resultat_epreuve.nom, resultat_epreuve.age, resultat_epreuve.sexe, resultat_epreuve.epreuve, resultat_epreuve.resultat
    FROM resultat_epreuve
    WHERE (((resultat_epreuve.age)<=29) AND ((resultat_epreuve.sexe)="homme") AND ((resultat_epreuve.epreuve)="killy") AND ((resultat_epreuve.resultat)>=110)) OR (((resultat_epreuve.age)<=39) AND ((resultat_epreuve.sexe)="homme") AND ((resultat_epreuve.epreuve)="killy") AND ((resultat_epreuve.resultat)>=99)) OR (((resultat_epreuve.age)<=49) AND ((resultat_epreuve.sexe)="homme") AND ((resultat_epreuve.epreuve)="killy") AND ((resultat_epreuve.resultat)>=86));
    On évite ainsi le between pour l'age et le résultat.

    A developper !

Discussions similaires

  1. [MCD] Creation d'une base pour gérer des campus
    Par Fady01 dans le forum Schéma
    Réponses: 1
    Dernier message: 13/05/2010, 19h34
  2. Remplir une table pour faire des tests
    Par softopus dans le forum Débuter
    Réponses: 3
    Dernier message: 15/02/2010, 20h26
  3. [AC-2007] Créer une BDD pour gérer des appareils
    Par ICETEA54 dans le forum Modélisation
    Réponses: 3
    Dernier message: 19/11/2009, 21h32
  4. [SQL] Récupération éventuelle d'une variable pour faire des tests
    Par mougeole dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/05/2006, 13h56
  5. Une unité pour gérer des très grands nombres
    Par M.Dlb dans le forum Langage
    Réponses: 2
    Dernier message: 09/09/2003, 12h07

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