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 :

COUNT ne renvoie pas 0


Sujet :

Requêtes MySQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut COUNT ne renvoie pas 0
    Bonjour,

    Je dois créer un graphique pour afficher le nombre de tickets ouverts en heure ouvrée (8H-18H), et en heure non ouvrée. Je dispose d'une table 'tickets' contenant différents champs (heure_ouverture, heure_fermeture, type_panne etc...) je dois extraire l'ensemble de ces dates, et trier le nombre de tickets ouverts en heure ouvrée, et le nombre de tickets en heure non ouvrée dans un graphique avec 1 ligne pour chaque. J'arrive bien à récupérer les différentes dates du mois avec cette requête: "SELECT DISTINCT DATE_FORMAT(heure_ouverture, '%d/%m') FROM tickets WHERE month(heure_ouverture)=month(now()) AND year(heure_ouverture)=year(now()) GROUP BY DATE_FORMAT(heure_ouverture, '%d/%m/%Y')"

    Et ensuite le nombre de tickets en heures ouvrées avec cette requête: "SELECT count(*) FROM `tickets` WHERE DATE_FORMAT(`heure_ouverture`, '%H:%i' ) BETWEEN '08:00' AND '18:00' GROUP BY DATE_FORMAT(heure_ouverture, '%d/%m')" tout celà fonctionne bien car si il y'a une date renseignée il y aura forcément un ticket en heure ouvrée. Le problème vient des heures non ouvrées, car il est possible qu'il y est un jour avec un ticket en heure ouvrée, mais pas en heure non ouvrée du coup ma requete au dessus n'est pas valable car count ne renverra pas 0 si une date existe mais pas aux horaires non ouvrées. Je sais pas si quelqu'un va comprendre mon explication , mais pour résumer je voudrais extraire toutes les dates de ma table et ensuite compter le nombre de tickets en heure non ouvrée et si une date existe mais n'a pas eu de tickets ouverts en dehors des heures ouvrées que count (ou autre chose) me renvoie 0 pour ne pas décaler mon graphique.

    En vous remerciant par avance.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    C'est pas hyper clair, mais est ce que cette requête conviendrait ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT DATE_FORMAT(heure_ouverture, '%d/%m'),
           sum(case when DATE_FORMAT(`heure_ouverture`, '%H:%i' ) BETWEEN '08:00' AND '18:00' then 1 else 0 end) as nb_ouvree,
           sum(case when DATE_FORMAT(`heure_ouverture`, '%H:%i' ) not BETWEEN '08:00' AND '18:00' then 1 else 0 end) as nb_non_ouvree
      FROM tickets 
     WHERE extract(YEAR_MONTH from heure_ouverture) = extract(YEAR_MONTH from now())
     group by DATE_FORMAT(heure_ouverture, '%d/%m')
    Par contre vous devriez implémenter une table calendrier pour gérer facilement le cas où il n'y a aucun ticket pour une date donnée.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci skuatamad quel efficacité
    c'est exactement ce que je voulais, dire que je cherche depuis hier...

    Merci encore et bonne fêtes à tous

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

Discussions similaires

  1. Count ne renvoie pas de valeur
    Par NicoNGRI dans le forum Langage SQL
    Réponses: 5
    Dernier message: 25/01/2008, 14h49
  2. Réponses: 3
    Dernier message: 08/11/2006, 23h04
  3. Réponses: 2
    Dernier message: 12/01/2005, 23h08
  4. Retourner un count = 0 quand pas de résultat
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 21/12/2004, 15h11
  5. jointure renvois pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/08/2002, 12h51

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