może to nie jest perfekcyjne rozwiązanie, ale nie chce mi się myśleć.
spróbuj dodać indeksy dla pól miesiac, rok i wszystkich tych p-numerowanych, bo raczej indeksów tam chyba nie ma.
oczywiście na pewno jest jeszcze jakieś rozwiązanie, ale napiszę dopiero, gdy na nie wpadnę

//edit: indeksy INDEX najlepiej, bo raczej masz tam powtórzenia

//edit2: inną, bardziej oczywistą opcją, jest wysłanie tylko jednego zapytania, a później obrobienie wyniku w samym php. co nie wyklucza oczywiście użycia indeksów. wysyłasz zapytanie wybierające rekordy z określonej daty (miesiac, rok), pakujesz wszystko do tablicy dwuwymiarowej, przelatujesz pętlą, sprawdzając, czy podany rekord spełnia określone warunki.