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 :

requetes sql exemples


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Par défaut requetes sql exemples
    bonjour ,

    voici un modele relationnel :
    etudiant (numetu, nom, prenom, datenaiss, rue, cp, ville)
    matiere (codemat, libelle, coef)
    epreuve (numepreuve, datepreuve, lieu, codemat#)
    notation (numetu#, numepreuve#, note)

    On peut executer les requtes a cette adresse :
    http://eric.univ-lyon2.fr/~jdarmont/tutoriel-sql/

    -les requetes

    1-je voulais afficher les eleves et leur nom qui ont plus que la moyenne generale de toutes les matieres).
    2-quels sont les éléves qui n ' ont pas de notes
    3- j ai essayé de faire des jointures externes mais je ne comprends pas trop la différence avec les jointures internes , autre chose quelle différence entre une jointure a gauche ou a droite?
    4-Quels sont les eleves qui n ' ont pas eu de note a partir d une certaine date

    je vous remercie d ' avance

  2. #2
    Membre chevronné Avatar de elbj
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2004
    Messages : 371
    Par défaut
    Salut

    En gros tu veux qu'on fasse ton exercice à ta place... pffff c'est ça la prochaine génération d'informaticiens ?

    ...

    Essaye déjà de faire quelque chose et présente nous un début de commencement de travail, on verra ensuite...

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Par défaut
    Citation Envoyé par elbj Voir le message
    Salut

    En gros tu veux qu'on fasse ton exercice à ta place... pffff c'est ça la prochaine génération d'informaticiens ?

    ...

    Essaye déjà de faire quelque chose et présente nous un début de commencement de travail, on verra ensuite...
    bonjour ,

    Non pas du tout , c ' est pour m exercer , ce n ' est pas du tout un exercice que je dois rendre .

    merci

  4. #4
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Il y a plusieurs tutoriels SQL très bien faits sur ce site, le meilleur moyen pour s'exercer c'est de pratiquer
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  5. #5
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Par défaut
    bonjour
    1- pour selectionner les eleves qui ont plus que la moyenne général (toutes matieres confondus)
    la moyenne par élève :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select nom , prenom ,avg(note)as "moyenne general par élève" from etudiant e 
    inner join notation as n on e.numetu = n.numetu
    group by nom
    moyenne générale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select avg(note)as "moyenne general" from notation
    Mais comment afficher seulement les élèves qui ont plus que la moyenne générale?je voulais le faire avec un having ou ajouter la condition apres la jointure.

    2-en ce qui concerne les éleves qui n ont pas de notes :

    Jointure externe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select nom , prenom  from 
    etudiant e left outer join notation n on e.numetu = n.numetu
    where note is null
    Mais j aurais voulu savoir dans quelle matiere ils n ont pas eu de note.

    Merci

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 352
    Par défaut
    Citation Envoyé par racoboss Voir le message
    1- pour selectionner les eleves qui ont plus que la moyenne général (toutes matieres confondus)
    la moyenne par élève :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select nom , prenom ,avg(note)as "moyenne general par élève" from etudiant e 
    inner join notation as n on e.numetu = n.numetu
    group by nom
    moyenne générale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select avg(note)as "moyenne general" from notation
    Mais comment afficher seulement les élèves qui ont plus que la moyenne générale?je voulais le faire avec un having ou ajouter la condition apres la jointure.
    Effectivement le having est la chose la plus appropriée. Il suffit juste de faire having avg(note) >= ( select avg(note)... )

    Par contre, étant donné que tu utilise une fonction d'agrégat (avg), il faut que ton group by porte sur tous les élements du select except ta fonction. il te faut donc group by nom, prenom

    Citation Envoyé par racoboss Voir le message
    2-en ce qui concerne les éleves qui n ont pas de notes :

    Jointure externe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select nom , prenom  from 
    etudiant e left outer join notation n on e.numetu = n.numetu
    where note is null
    Mais j aurais voulu savoir dans quelle matiere ils n ont pas eu de note
    POur savoir ds quelle matière ils n'ont pas de notes, il suffit de continuer tes jointures en passant par la table epreuve puis par la table matière grâce à tes clé étrangères

  7. #7
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    bonjour,

    Citation Envoyé par racoboss Voir le message
    3- j ai essayé de faire des jointures externes mais je ne comprends pas trop la différence avec les jointures internes , autre chose quelle différence entre une jointure a gauche ou a droite?
    peux tu nous montrer ce que tu as essayé et nous dire les problèmes rencontrés.
    Pour les jointures, je te conseille la lecture de ceci : http://sql.developpez.com/sqlaz/jointures/#L2.2

    A+

Discussions similaires

  1. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 10h31
  2. Prob de requete sql et variable
    Par agent-zaizai dans le forum ASP
    Réponses: 11
    Dernier message: 21/10/2003, 17h54
  3. requete sql
    Par autumn319 dans le forum ASP
    Réponses: 22
    Dernier message: 10/09/2003, 17h46
  4. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 12h24
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 14h43

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