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

 MySQL Discussion :

juste une confirmation


Sujet :

MySQL

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Par défaut juste une confirmation
    Bonjour, voila plus d'une semaine que je me casse les dents plusieurs requêtes.
    Les résultats trouvés sont cohérents, mais hélas, faux (Cf glpi, l'outil qui me donne le véritable résultat des requêtes).

    Je voudrais valider avec vous si ma requête est bonne ou non.
    Voici la structure de ma table :

    id - name - date - closedate - ... - status - ...

    Je souhaite que ma requête compte tous les lignes de l'année 2011 classée par année.
    Voici la requête que j'ai en ce moment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT YEAR(date) as annee, COUNT(*) as total FROM glpi_tickets GROUP BY annee
    Pouvez vous me dire si j'ai juste ou non.

    Merci d'avance

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Bonjour,

    Quel intérêt de grouper par année si seule l'année 2011 t'intéresse ?
    La requête suivant ne suffit-elle pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT COUNT(*) AS total 
    FROM glpi_tickets 
    WHERE YEAR(date) = 2011
    Au passage, j'espère que ton champ ne s'appelle pas réellement "date", parce que c'est un mot réservé du SQL et de MySQL, ce qui peut poser des problèmes dans les requêtes.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Par défaut
    en réalité toutes les années m'intéresse..
    Mon champ s'appelle date...

    Je me suis rendu compte que j'ai 3 dates différentes. Comment faire pour compter les lignes pour les 3 dates ?
    date - soledate - closedate

    Je veux compter date+soledate+closedate

    Merci

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Citation Envoyé par Redg9 Voir le message
    Je veux compter date+soledate+closedate
    Et comment faire quand les 3 dates portent sur une année différente ?
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Par défaut
    On les prends pas en compte. (et c'est à ce moment la que j'ai l'impression de dire une grosse conne*ie)

  6. #6
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Le mieux serait que tu nous donnes un exemple de ce que tu as en base et de ce que tu souhaites comme résultat de la requête à partir de cet exemple.
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Par défaut
    D'accord.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
                 date                                closedate                     
    2011-04-07 12:32:39 	2011-04-18 14:26:40 	
    2011-04-07 13:36:51 	2011-04-12 14:57:23 		
    2011-04-18 10:00:57 	2011-04-18 14:24:09

    Sachant que date peut être de 2010 et que closedate peut etre de 2011.

    Ce que je souhaite faire c'est compter toutes lignes dans date ou de closedate ont pour année 2011 trier par année. Avec l'extrait au dessus ca donnerait un résultat comme ca : 2011 3

    Edit : merci de ta patience

  8. #8
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Essaie quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT GREATEST(YEAR(date), YEAR(closedate)) AS annee, COUNT(*) AS total 
    FROM glpi_tickets 
    GROUP BY 1
    ORDER BY 1
    S'il y a un troisième champ de type date à prendre en compte, tu peux l'ajouter dans la fonction GREATEST à la suite des autres.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Par défaut
    J'ai lu la doc sur GREATEST. Il compare, si j'ai bien compris, et afffiche le plus grand.

    Ce que je souhaite faire c'est additionner les deux. Par exemple avec soldate j'ai 103 pour l'année 2011 et avec date j'ai 102. Ce que je veux c'est 205.

    Merci

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Par défaut
    j'ai trouvé la solution en codant.. Mais je trouve cela très sale.
    Je ne mets donc pas le topic en Résolu même si grâce à mon code je n'ai plus le problème.

    Merci pour ta contribution Ced.

  11. #11
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Redg9 Voir le message
    Ce que je souhaite faire c'est additionner les deux. Par exemple avec soldate j'ai 103 pour l'année 2011 et avec date j'ai 102. Ce que je veux c'est 205.
    Donc en réalité tu multiplie quasiment par deux le nombre de tickets !

    Ça ne correspond pas à ton besoin exprimé dans ton premier message :
    Je souhaite que ma requête compte tous les lignes de l'année 2011 classée par année.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Par défaut
    En effet, intitulé erroné. Je m'en excuse

Discussions similaires

  1. Juste une confirmation sur la propriété Align
    Par Delphi-ne dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/03/2009, 10h50
  2. Ouvrir juste une rubrique
    Par jenny50 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 06/03/2006, 14h31
  3. Appeler juste une fonction sans include
    Par laurent_ifips dans le forum Langage
    Réponses: 5
    Dernier message: 23/11/2005, 00h08
  4. Réponses: 2
    Dernier message: 08/09/2005, 11h20
  5. Réponses: 5
    Dernier message: 20/11/2003, 17h36

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