Potresti anche usare questa:

Codice PHP:
SELECT abcddateSUM(p), SUM(q), SUM(s),
(
SELECT r FROM my_table WHERE date =
    (
SELECT MAX(date) AS data
    FROM my_table 
    WHERE date 
>= giorno_inizio_mese AND date <= giorno_fine_mese)
) AS 
r
FROM my_table     
WHERE date 
>= giorno_inizio_mese and date <= giorno_fine_mese 
GROUP BY a
,b,c,
Non so se sia più efficiente della tua e non ho potuto neanche testarla, quindi non so se funge correttamente...provala e fammi sapere!!