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

Langage SQL Discussion :

Lister les étudiants à jour dont ceux qui ont déjà payé tous leurs frais de scolarité


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut Lister les étudiants à jour dont ceux qui ont déjà payé tous leurs frais de scolarité
    SVP, pouvez-vous m'aider à partir des tables suivantes :
    etudiants(MatEtu,PrenomEtu,....)
    nature_paie(ID_Type_Paie,Nom_Type_Paie,Montant_Type_Paie)
    annee(CodeAnnee,NomAnnee)
    paiements(#IDEtu,#AnneePaie,DatePaie,#NaturePaiement,MontantPaie)
    #IDEtu, #AnneePaie et #NaturePaiement sont les clés étrangères des tables respectives etudiants, annee et nature_paie.
    La table nature_paie enregistre deux types de paiements, à savoir frais d'inscription et frais de scolarité, selon le parcours. Par exemple, pour le parcours Licence, cette table va enregistrer l'identifiant du type à payer(FILicence et FSLicence), son nom (frais inscription licence et frais de scolarité Licence) et le montant des frais d'inscription LIcence et des frais de scolarité Licence.
    Comment :
    - lister les étudiants à jour dont qui ont déjà payé tous leurs frais de scolarité ?
    - faire l'historique de paiement d'un étudiant pour ses frais uniquement de scolarité ?

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    1) Quel est votre SGBD ?

    2) Qu'avez-vous essayé comme requête ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    etudiants(MatEtu,PrenomEtu,....)
    nature_paie(ID_Type_Paie,Nom_Type_Paie,Montant_Type_Paie)
    annee(CodeAnnee,NomAnnee)
    paiements(#IDEtu,#AnneePaie,DatePaie,#NaturePaiement,MontantPaie)
    #IDEtu, #AnneePaie et #NaturePaiement sont les clés étrangères des tables respectives etudiants, annee et nature_paie.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Euh... ça vous l'avez déjà écrit dans votre premier message mais vous ne répondez pas aux questions !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    j'utilise MySql comme sgbd et je travaille sur wampserver.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    J'ai déjà réussi à faire la deuxième question, à savoir l'historique de paiement d'un étudiant.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Je n'arrive pas encore à faire des requêtes qui touchent plusieurs tables. Si tu as une piste pour faire une requête qui liste les étudiants à jour...

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 173
    Points : 485
    Points
    485
    Par défaut
    Tu as fais quoi comme requête.

    Une requête de sélection commence par SELECT ...

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    à jours.php voici une requête

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    SELECT * 
    FROM etudiants et
    WHERE et.MatEtu NOT IN (SELECT	e.MatEtu 
    FROM	etudiants e 
    WHERE	NOT EXISTS(SELECT 1 FROM paiements p WHERE p.IDEtu = e.MatEtu)
    UNION
    SELECT	e.MatEtu
    FROM	etudiants e
    WHERE	EXISTS (
    	SELECT 1
    	FROM	paiements p
    			JOIN nature_paie np
    				ON p.NaturePaiement = np.ID_Type_Paie
    	WHERE	p.IDEtu = e.MatEtu
    			AND p.MontantPaie < np.Montant_Type_Paie 
    	)
    )

    Mysql me retourne un résultat vide

  11. #11
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    1) Quels montants ont payé les étudiants pour l'année 2014 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT p.IDEtu, SUM(p.MontantPaie) AS Total_paiement_fait
    FROM paiements p
    INNER JOIN annee a ON a.CodeAnnee = p.AnneePaie
    INNER JOIN nature_paie n ON n.ID_Type_Paie = p.NaturePaiement
    WHERE a.NomAnnee = '2014-2015'
    	AND n.Nom_Type_Paie = 'Frais de scolarité'
    GROUP BY IDEtu
    2) Pour avoir ceux qui ont payé la totalité des frais de scolarité, il suffit d'ajouter la clause HAVING :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT p.IDEtu, SUM(p.MontantPaie) AS Total_paiement_fait
    FROM paiements p
    INNER JOIN annee a ON a.CodeAnnee = p.AnneePaie
    INNER JOIN nature_paie n ON n.ID_Type_Paie = p.NaturePaiement
    WHERE a.NomAnnee = '2014-2015'
    	AND n.Nom_Type_Paie = 'Frais de scolarité'
    GROUP BY IDEtu
    HAVING Total_paiement_fait = n.Montant_Type_Paie
    3) Si vous voulez les informations sur ces étudiants, il suffit d'ajouter une jointure sur la table "etudiants" et ne pas oublier de modifier le GROUP BY :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT e.MatEtu, e.PrenomEtu, SUM(p.MontantPaie) AS Total_paiement_fait
    FROM paiements p
    INNER JOIN etudiants e ON e.MatEtu = p.IDEtu
    INNER JOIN annee a ON a.CodeAnnee = p.AnneePaie
    INNER JOIN nature_paie n ON n.ID_Type_Paie = p.NaturePaiement
    WHERE a.NomAnnee = '2014-2015'
    	AND n.Nom_Type_Paie = 'Frais de scolarité'
    GROUP BY e.MatEtu, e.PrenomEtu
    HAVING Total_paiement_fait = n.Montant_Type_Paie
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Mysql me retourne un résultat vide avec toutes tes requêtes

  13. #13
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Il faut peut-être adapter ma requête à vos libellés pour l'année et la nature de paiement ?

    Avez-vous des données dans vos tables qui devraient être retournées et qui ne le sont pas ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Oui nous avons des données dans nos tables qui doivent s'afficher.
    Voici ma base de données que j'ai exportée dbknl_soft (1).sql

Discussions similaires

  1. Rechercher les noeuds vides et ceux qui n'ont pas d'attributs
    Par Egidius dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 20/11/2014, 12h40
  2. [XL-2010] Lister les fichier d'un répertoire qui n'ont pas encore été listés
    Par QuestVba dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/10/2014, 10h03
  3. A ceux qui ont migré de VB6 vers VB.Net
    Par Fox dans le forum VB 6 et antérieur
    Réponses: 81
    Dernier message: 21/05/2008, 14h56
  4. IIS + Apache + mysql...pour ceux qui ont déjà installé
    Par ludophil dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 15/10/2005, 02h21

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