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 MySQL Discussion :

Requete compliquée ?


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Requete compliquée ?
    Bonjour à tous,
    Je travaille sur un projet de gestion de bénéficiaires pour une ONG et suis bloqué pour une requête. L'objectif semble simple, mais je n'arrive pas à formuler la requête.

    J'ai 2 tables:

    1. beneficiaires: contient l'ensemble des informations concernant les bénéficiaires du projet (nom, adresse, code client, ...).

    2. formations: l'ONG donne différentes formations aux bénéficiaires, afin qu'ils puissent apprendre et s'améliorer. Cette table contient entre autres la date de formation, ainsi que l'id du bénéficiaire formé.
    Un bénéficiaire qui suit plusieurs formations apparait plusieurs fois dans la table.

    J'aimerais pouvoir afficher l'ensemble des bénéficiaires qui ont suivi au moins X formations entre la date Y et Z.

    Je pensais à ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT b.* FROM beneficiaires as b
    INNER JOIN formations as f
    ON f.benef_id = b.id
    WHERE f.date BETWEEN 'Y' AND 'Z'
    Je n'arrive par contre pas à exprimer la contrainte "au moins X formations"

    Merci beaucoup pour votre aide, j'espère que c'est clair,

    Christophe

  2. #2
    Membre confirmé
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Points : 586
    Points
    586
    Par défaut
    Bonjour,

    Je te propose ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT b.* FROM beneficiaires AS b
    WHERE EXISTS 
    (
    SELECT f.benef_id  FROM formations AS f
    WHERE f.benef_id = b.id
    AND f.date BETWEEN 'Y' AND 'Z'
    GROUP BY f.benef_id 
       HAVING count(*) >= X
    )
    Je n'ai pas testé, c'est fait à la volée, mais dans l'idée ça serait ça

    Précision : j'ai utilisé un 'where exists' car tu ne sembles avoir besoin de remonter que les champs de la table beneficiaires. Pour remonter des champs d'autres tables, il faudra un peu modifier la requête et utiliser une jointure comme tu as fait.

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    faites un group by et utilisez la clause having pour spécifier la condition "X formation"

Discussions similaires

  1. Une requete compliquée
    Par Kapitteli dans le forum Langage SQL
    Réponses: 9
    Dernier message: 29/06/2007, 22h08
  2. [oracle] des requetes compliquées
    Par Rukia dans le forum Langage SQL
    Réponses: 1
    Dernier message: 25/06/2007, 18h05
  3. requete compliquée Mysql
    Par benrom dans le forum Requêtes
    Réponses: 6
    Dernier message: 28/02/2007, 08h32
  4. [oracle 9i] Requete compliquée
    Par Herveg dans le forum Oracle
    Réponses: 7
    Dernier message: 15/06/2006, 11h34
  5. requete compliquer pour generer graphique
    Par keiser1080 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 30/01/2006, 09h02

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