Query raggruppamento mese / Anno . consigli

martedì 11 settembre 2012 - 10.08
Tag Elenco Tags  SQL Server 2008 R2  |  MySQL 5.5

the_driver Profilo | Senior Member

ciao a tutti, dovrei fare una semplice query su una tabella in grado di raggruppare per mese e anno.

Inoltre vorrrei che comparissero i mesi con valore 0 qualora non vi siano record con una data di quel mese.

la query deve funzionare in MYSQL.

Come posso fare?


esempio tabelle

TAB1

id_p INT PK
val1 VARCHAR
creation_date DATETIME


Esempio di query

SELECT DATE_FORMAT(creation_date, '%M %Y') AS Month_Year,COUNT(id_p) AS tot FROM tab1 WHERE
creation_date>='2011-01-01' AND creation_date<='2012-12-31'
GROUP BY YEAR(creation_date),MONTH(creation_date)


In questo modo mi restituisce il totale delle occorre per i mesi trovati. vorrei mostrare tutti i mesi del periodo con COUNT a 0.

Esempio

Gen 2011 0
Feb 2011 1
Mar 2011 0
Apr 2011 2
...
Ott 2012 0
Nov 2012 1
Dic 2012 3


grazie


amelix Profilo | Expert

Se aggiungi la clausola
HAVING (COUNT(id_p) = 0)

dovresi vedere solo i mesi/anno che non hanno occorrenze:
SELECT DATE_FORMAT(creation_date, '%M %Y') AS Month_Year,COUNT(id_p) AS tot FROM tab1 WHERE creation_date>='2011-01-01' AND creation_date<='2012-12-31' GROUP BY YEAR(creation_date),MONTH(creation_date) HAVING (COUNT(id_p) = 0)

Con questo risultato:
Gen 2011 0 Mar 2011 0 ... Ott 2012 0

Andrea
http://about.me/andrea.melis
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5