Bonjour, voici mon problème.
Dans une base de données (SQL Server 2005) se trouve une table Visites servant à comptabiliser les visites sur un site web. Cette table contient les colonnes suivantes:
ID - format INT (identifiant unique auto incrémenté)
LogDate - format DATETIME (date de la visite)
IDWebPage - format INT (numéro unique de la page web visitée, les pages web sont recensées dans une autre table mais seul l'ID nous intéresse ici)
IPAddress - format NVARCHAR(15) (adresse IP du visiteur pour distinguer les visites uniques)
Je souhaite compter les visites par mois sur chacune des 3 pages web numérotées 1, 2 et 3 puis remplir un graphique grâce aux valeurs retournées.
Pour ce faire mes requêtes de comptage sont les suivantes:
puis la même chose avec IDWebPage=2 puis 3 pour les 2 autres pages.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT DATENAME(MONTH,LogDate) AS Mois, COUNT(IPAddress) AS [Visites page 1] FROM OFFVisitStats WHERE IDWebPage=1 GROUP BY DATENAME(MONTH,LogDate)
Le problème est le suivant:
Pour remplir mon graphique, chacune des 3 requêtes dois impérativement retourner le même nombre de lignes.
Mais en admettant que la page 1 n'ai pas été visitée en février, la page 2 n'ai pas été visitée en février, mars et juillet et la page 3 n'ai pas été visitée en avril et octobre, je vais obtenir seulement 11 lignes pour la page 1, 9 pour la page 2 et 10 pour la page 3.
Hors je souhaiterais toujours obtenir 12 lignes (dans le même ordre) avec un comptage de 0 si aucune visite n'a été effectuée pour un mois donné.
Donc pour la requête de la page 1, au lieu de:
Janvier - 28
Mars - 12
Avril - 47
etc.
je souhaiterais:
Janvier - 28
Février - 0
Mars - 12
Avril - 47
etc.
J'espère avoir été clair.
Partager