ana kategoriler ve alt kategoriler aynı tabloda mı tutuluyor? yoksa farklı tablolarda mı ? söylediklerinizin tamamını sql ile yapıp basit php komutları ile ekrana yazdırabilirsiniz. önce bu alt ve ana kategorileri birbirine sql üzerinden bağlamalısınız. örnek kodu aşağıda (ben farklı tablolardır diye düşünüyorum)
select a.*,b.* from ana_kategori a,alt_kategori b
where a.kat_id=b.ana_kat_id
bu komutla iki tabloyu birbirine bağlamış oldun. şimdi SUM() fonksiyonu ile istediğin değeri toplayıp ekrana yazabilirsin mesela;
select SUM(b.fiyat) as BFiyat from ana_kategori a,alt_kategori b
where a.kat_id=b.ana_kat_id
gibi. daha sonra bunu php ile kullanıp ekrana basıcaksın. SQL üzerinden aylık istatistik de alabilirsin, bunu yapmıyorum kendin araştırıp bulursun

hem öğrenmiş olursun.