salve a tutti
ho un DB chiamato recensioni composto cosi:
id data name text
per creare delle statistiche, mi serve fare la count di quanti dati sono presenti ogni mese per gli ultimi 12 mesi e fin qui non ho problemi
il risultato è il seguente:codice:SELECT MONTH(data) as a , COUNT(data) as b FROM recensioni WHERE data > DATE_SUB(now(), INTERVAL 12 MONTH) GROUP BY MONTH(data) order by data asc
a (ultimi 12 mesi in ordine cronologico) b (count) 11 120 1 231 2 345 3 567 5 433 8 234 10 231
il problema è che per alcuni mesi non esistono dati
mentre a me servirebbe stampare anche i mesi con result 0
in questo modo:
a (ultimi 12 mesi in ordine cronologico) b (count) 11 120 12 0 1 231 2 345 3 567 4 0 5 433 6 0 7 0 8 234 9 0 10 231
allora ho cercato un altra soluzione, quella di creare una tabella chiamata statistic_data in cui ho inserito un campo ID che va da 1 a 12... e con una join associare i dati... ma purtroppo non so dove sbaglio ma mi fa vedere sempre lo stesso risultato.
codice:select statistic_data.id, MONTH(richieste.data) as a , COUNT(richieste.data) as b from statistic_data LEFT join richieste on statistic_data.id=MONTH(richieste.data) WHERE richieste.data > DATE_SUB(now(), INTERVAL 12 MONTH) GROUP BY MONTH(richieste.data) order by richieste.data asc
id (tabella statistic_data) a (ultimi 12 mesi in ordine cronologico) b (count) 11 11 120 1 1 231 2 2 345 3 3 567 5 5 433 8 8 234 10 10 231
come si fa a fare stampare tutti i mesi compresi quelli in cui la count è uguale a 0?
grazie mille


Rispondi quotando