Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2011, 16h59   #1
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 1
Points : 1
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 :
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.
xXAsapXx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 17h06   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 652
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 652
Points : 2 653
Points : 2 653
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 :
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.
punkoff est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 17h19   #3
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 1
Points : 1
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?
xXAsapXx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 17h25   #4
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 652
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 652
Points : 2 653
Points : 2 653
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.
punkoff est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 17h32   #5
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 1
Points : 1
Très bien, merci encore je marque ce sujet résolu.
xXAsapXx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h24.


 
 
 
 
Partenaires

Hébergement Web