codice:
SELECT COUNT(Tmp1.stato) AS TotReport, StatiSms.stato, 
CONCAT(MONTH(Report.DataOra), '/', YEAR(Report.DataOra)) AS Mese, 
StatiSms.Vodafone 
FROM Report 
INNER JOIN Tmp1 ON Report.id = Tmp1.Id 
RIGHT OUTER JOIN StatiSms ON Tmp1.stato = StatiSms.stato  
INNER JOIN ReportListe ON Report.Id = ReportListe.Id_Report 
WHERE Report.Id_Ambiente = 1
GROUP BY StatiSms.stato, MONTH(Report.DataOra), YEAR(Report.DataOra) 
ORDER BY YEAR(Report.DataOra), MONTH(Report.DataOra), StatiSms.id;

la query funziona in maniera corretta, ma nell'inner join evidenziato in rosso accade il problema. Ovvero nella tabella "ReportListe" ci possono essere più corrispondenze a "Report.Id", di conseguenza il "COUNT(Tmp1.stato)" mi restituisce un valore sballato.
Avrei pertanto bisogno di fare un "DISTINCT" su "Report.Id", solo che se lo metto nella select, ovviamente non ottengo più il totale che mi interessa.

suggerimenti?