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 :

Calcul de statistiques mensuelles


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 41
    Points : 31
    Points
    31
    Par défaut Calcul de statistiques mensuelles
    Bonsoir à tous,
    J'aimerai savoir comment faire une requête MySQL sur une table comportant 2 champs :
    la date -> une valeur :
    exemple
    2008-01-30 -> 152
    2008-01-31 -> 140

    Vous l'avez compris, je veux faire une requête qui me fasse les cumul mensuels de valeurs, c'est pour des statistiques

    Voici les champs
    t_compteur_date->t_compteur_valeur

    D'avance merci pour votre aide.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonsoir à tous,
    J'aimerai savoir comment faire une requête MySQL sur une table comportant 2 champs :
    la date -> une valeur :
    exemple
    2008-01-30 -> 152
    2008-01-31 -> 140

    Vous l'avez compris, je veux faire une requête qui me fasse les cumul mensuels de valeurs, c'est pour des statistiques

    Voici les champs
    t_compteur_date->t_compteur_valeur
    voici le code pour sql serveur... adapte le...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TABLE TABLE2(MADATE DATETIME,MAVALEUR INT)
    GO
    INSERT INTO TABLE2(MADATE,MAVALEUR) VALUES ('01/01/2008',10);
    INSERT INTO TABLE2(MADATE,MAVALEUR) VALUES ('02/01/2008',10);
    INSERT INTO TABLE2(MADATE,MAVALEUR) VALUES ('01/02/2008',10);
     
    SELECT monmois,Sum(mavaleur) FROM
    ( SELECT maDate,Month(maDate) AS monMois,maValeur FROM Table2 ) AS MaTable
    GROUP BY monMois

  3. #3
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 41
    Points : 31
    Points
    31
    Par défaut Cela fonctionne mais mais impossible d'en faire une vue
    Bonjour ylarvor et merci beaucoup pour votre réponse qui fonctionne à merveille,

    voici pour ceux que ça intéresse le code adapté pour MySQL :

    SELECT (CONCAT(MONTH(t_compteur_date),'-', YEAR(t_compteur_date)))AS periode, SUM(t_compteur_valeur) AS nb_requete
    FROM
    ( SELECT t_compteur_date,(CONCAT(MONTH(t_compteur_date),'-', YEAR(t_compteur_date))) AS periode,t_compteur_valeur FROM t_compteur_ft ) AS t_compteur_ft
    GROUP BY periode ;
    Par contre, j'ai voulu en faire une vue, et voici le message d'erreur qui est apparue :

    VIEW 's SELECT CONTAINS A SUBQUERY IN THE FROM CLAUSE
    Auriez vous, s'il vous plait une idée sur la marche à suivre pour résoudre ce souci ?

    D'avance merci.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut vue en cascade... ce n'est pas optimisee...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT monmois,Sum(mavaleur) FROM
    ( SELECT maDate,Month(maDate) AS monMois,maValeur FROM Table2 ) AS MaTable
    GROUP BY monMois 
    
    CREATE VIEW VueTable2 AS SELECT maDate,Month(maDate) AS monMois, YEAR(maDate) As monAnnee,maValeur FROM Table2
     
    CREATE VIEW VueAgregeTable2 AS SELECT monAnnee,monMois,Sum(mavaleur) As total FROM VueTable2 GROUP BY monAnnee,monMois;

  5. #5
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 41
    Points : 31
    Points
    31
    Par défaut Impeccable ça marche
    Encore merci une fois de plus à ylarvor pour sa réponse.
    Cela fonctionne parfaitement, c'est vrai que j'aurai du y penser : faire 2 vues.

    Par contre, c'est plus gourmand en terme de ressources, je pense que je vais garder la requête de départ.

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

Discussions similaires

  1. Calcul de statistiques
    Par missastro dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/09/2007, 17h02
  2. Info concernant le calcul de statistiques
    Par joziel dans le forum Oracle
    Réponses: 7
    Dernier message: 01/09/2006, 15h12
  3. calcul de statistique
    Par robert_trudel dans le forum Access
    Réponses: 1
    Dernier message: 14/08/2006, 19h54
  4. calcul des statistiques par dbms_stat
    Par learn dans le forum Oracle
    Réponses: 5
    Dernier message: 27/02/2006, 21h16
  5. [DBA] Calcul des Statistiques sans privilèges DBA
    Par Krashtest dans le forum Administration
    Réponses: 14
    Dernier message: 06/05/2004, 16h08

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