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 MySql ?


Sujet :

Requêtes MySQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Par défaut Requete MySql ?
    Bonjour,
    J'ai des données dans une base sql qui sont datés;
    Je dois écrire une requete mysql qui me permet de sélectionner les 3 maximum d'une colonne de chaque semaine à partir d'une date donnée !!
    Apres, je dois faire la moyenne de ces 3 max ;

    Il ya t il quelq'un qui peut m'aider !!?

  2. #2
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Je n'ai pas le courage de faire le procédure complète mais voici une première piste. Il est clair que tu ne peux pas obtenir ton résultat en une seule requette SQL, je te conseille donc d'écrire une petit procédure qui se divisera en deux étapes.

    Tu dois récupérer les différents semaines de ta table et les placer dans un curseur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT disinct date_format(colDate, "%U")
    FROM nomTable
    WHERE colDat >= dateDepart
    Pour chaque semaine, tu dois calculer la moyenne de tes trois valeurs max de la manière suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT AVG(colValeur) FROM(
    	SELECT colValeur FROM nomTable
    	WHERE date_format(colDate, "%U") = cursor.date
    	ORDER BY 1 DESC
    	LIMIT 3
    )
    Pour comprendre comment fonctionne date_format je te conseille de lire le manuel MySQL http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Par défaut
    Merci pour votre réponse, j'ai bien compris ce que t'as écrit; mais le pb c ke je ne sais pas comment faire un curseur, en plus j'execute ces requetes à partir d'une interface en java ;
    Je vais essayer d'utiliser une partie de ton code pour résoudre partiellement le pb !
    Merci comme meme !!

  4. #4
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Je ne connaissais pas la syntaxe des curseurs, il suffit d'aller sur le site de mySQL potasser la doc :

    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
    23
    24
    25
     
    CREATE PROCEDURE test()
    BEGIN
      DECLARE done INT DEFAULT 0;  
      DECLARE numSemaine INT;
      DECLARE tNumSemaine CURSOR FOR SELECT disinct date_format(colDate, "%U") FROM nomTable WHERE colDat >= dateDepart;  
      DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
     
      OPEN tNumSemaine;
     
     
      REPEAT
        FETCH tNumSemaine INTO numSemaine;
     
        INSERT INTO tableResultat
    		SELECT AVG(colValeur) FROM(
    			SELECT colValeur FROM nomTable
    			WHERE date_format(colDate, "%U") = cursor.date
    			ORDER BY 1 DESC
    			LIMIT 3);
     
      UNTIL done END REPEAT;
     
      CLOSE tNumSemaine;
    END

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Par défaut
    Merci pour ton aide!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. résultat d'une requete mysql
    Par noinneh dans le forum MFC
    Réponses: 4
    Dernier message: 03/03/2005, 16h54
  2. arret requete mysql
    Par titiyo dans le forum Bases de données
    Réponses: 5
    Dernier message: 15/10/2004, 17h40
  3. Problème sous requete MySQL
    Par gavelin dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/07/2004, 10h36
  4. Requete MySql pour Mambo Open source
    Par azman0101 dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/06/2004, 09h34

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