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 :

Requête sql trés longue?


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 14
    Points
    14
    Par défaut Requête sql trés longue?
    Salut;
    Je travail sur une application de gestion des notes des étudiants;
    J'ai calculer les moyennes des modules par la req:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     ..... ( [ 1 ]*(select COEFF from MATIERE where code_mat=1))
    +([2]*(select COEFF from MATIERE where code_mat=2)))
    / ((select COEFF from MATIERE where code_mat=1)
    +(select COEFF from MATIERE where code_mat=2))AS moymod1
    je dois calculer la moy générale qui est sum(moymod)/5
    est ce que je dois réecrire cette req 5 fois càd:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [ 1 ]*(select COEFF from MATIERE where code_mat=1))
    +([2]*(select .......as moymod1 +.........as moymod2+..........as moymod2.........
    merciiiiiiiiii

  2. #2
    Membre confirmé 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 : 50
    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
    Points : 558
    Points
    558
    Par défaut
    Bonjour

    Peut-on avoir la description de votre modèle, ou au moins, des entités concernées ? Vous travaillez sur quel SGBD ?

    Cordialement
    Christophe B.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 14
    Points
    14
    Par défaut merci
    Salut ;
    merci beaucoup elbj;

    Voilà mon MCD:
    http://www.developpez.net/forums/att...8&d=1209936199

    je travail sur sqlserver2005.

    merci encore.

  4. #4
    Membre confirmé 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 : 50
    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
    Points : 558
    Points
    558
    Par défaut
    Bonsoir

    Ces quelques requêtes devraient pouvoir vous guider :
    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
    18
    19
    20
    21
    22
    -- Moyenne par Matière
    SELECT Nom_Module,Nom_Matiere,SUM(Note * Coeff)/SUM(Coeff) AS Moyenne
    FROM Examen EXA
      JOIN Matiere MAT ON EXA.Code_Matiere = MAT.Code_Matiere
      JOIN Module MOD ON MOD.Code_Module = MAT.Code_Module
    GROUP BY Nom_Module,Nom_Matiere
     
    -- Moyenne par Module
    SELECT Nom_Module,SUM(Note * Coeff)/SUM(Coeff) AS Moyenne
    FROM Examen EXA
      JOIN Matiere MAT ON EXA.Code_Matiere = MAT.Code_Matiere
      JOIN Module MOD ON MOD.Code_Module = MAT.Code_Module
    GROUP BY Nom_Module
     
    -- Moyenne par Etudiant et par Module
    SELECT Nom_Etudiant,Nom_Module,SUM(Note * Coeff)/SUM(Coeff) AS Moyenne
    FROM Examen EXA
      JOIN Etudiant ETU ON EXA.Num_Inscription = ETU.Num_Inscription
      JOIN Matiere MAT ON EXA.Code_Matiere = MAT.Code_Matiere
      JOIN Module MOD ON MOD.Code_Module = MAT.Code_Module
    GROUP BY Nom_Etudiant,Nom_Module
    ORDER BY Nom_Etudiant
    Cordialement
    Christophe B.

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 14
    Points
    14
    Par défaut Merciiiiiiiiiiiiii
    Merci infiniment elbj;

    puisque j'ai utilisé le pivot table j'ai pas pensé à sum(Note*coeff)j'ai résoonné en fonction des colonnes de gridview :code mat[1]*coeff....;je vais essayer votre réponse.

    merci encore.

Discussions similaires

  1. [MySQL] Interrompre une requête sql trop longue
    Par kayoum dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/05/2011, 14h00
  2. Requête SQL très longue à s'exécuter
    Par dreamcat1 dans le forum SQL
    Réponses: 10
    Dernier message: 22/03/2010, 11h44
  3. Probleme de requête SQL trop longue
    Par piscou51000 dans le forum Requêtes
    Réponses: 4
    Dernier message: 13/02/2010, 19h06
  4. [Requête SQL]Trop longue pour une ligne
    Par jbulysse dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/07/2008, 14h27
  5. Exécuter une requête SQL très longue
    Par coraziari_l dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 10/01/2008, 17h07

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