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 :

Grouper par date SQL


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Grouper par date SQL
    Bonjour à tous,

    J'ai un petit soucis avec une requête SQL.Voici mon problème, j'ai une table Navigation contenant un certain nombre d'informations sur des connexions d'internautes et notamment l'heure de navigation (de champ "nav_dt").
    Je souhaitais donc "compter" le nombre de connexions par jour, chose que j'ai réalisé de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DATE(nav_dt) as jour, COUNT(*)
    FROM Navigation
    GROUP BY jour
    Le problème étant, et c'est tout à fait normal, que lorsque aucune connexion n'a eu lieu pour un jour précis, aucun résultat n'est retourné pour ce jour là, or j'aimerais qu'il m'affiche tout de même la date et et m'indique 0 dans la colonne COUNT.

    Je ne vois toujours pas comment faire :/

    D'avance merci pour votre aide.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Vu que vous n'avez pas spécifié votre sgbd ....


    Solution générique :
    vous devrez utiliser une fonction du sgbd qui vous renvoie la date du jour et l'utiliser comme référence pour faire une jointure dessus.

    par exemple sur Oracle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    with tmp as (
    select current_date as dt_jour
    from dual)
     
     
    select a.dt_jour, count(*)
    from tmp a
    left outer join ma_table b on a.dt_jour = b.la_date_à_comparer
    group by a.dt_jour

    edit : sinon pour une sélection plsu vaste il vosu faudra soit générer une liste de date soit avoir une table de date.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour cette réponse rapide, j'avais envisagé créer une table de date mais c'est une solution qui me paraissait un peu lourde.
    Serait-il possible d’exécuter une requête qui renvoie simplement tous les jours possibles entre deux dates?

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    oui, ou une fonction qui le ferai, mais là allez poster dans le forum de votre SGBD, vu que des solutions non normées assez simple pourrai exister.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Très bien, merci encore je marque ce sujet résolu.

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

Discussions similaires

  1. [SQL Server] Grouper par plage de date
    Par mimibobo dans le forum Développement
    Réponses: 5
    Dernier message: 08/04/2009, 12h06
  2. [SQL-VBA]tri par date dans access
    Par Mickey_Mouse dans le forum VBA Access
    Réponses: 5
    Dernier message: 06/02/2007, 09h49
  3. Requête SQL de tri par date
    Par Alain15 dans le forum Requêtes
    Réponses: 8
    Dernier message: 03/08/2006, 08h34
  4. Debutant - Requête Grouper par Date
    Par ghan77 dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/12/2005, 17h07
  5. [CR]grouper des dates par semaines, mais semaines FR !
    Par neo.51 dans le forum SAP Crystal Reports
    Réponses: 11
    Dernier message: 18/05/2004, 20h43

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