Tout d'abord, vous n'avez pas de requête "grouper par", vous pouvez donc la supprimer.
Un MV serait plus utile si vous deviez recalculer tous des données pour toutes les années. Comme cela semble être un résumé, sans qu'il soit nécessaire de retraiter les anciennes données, mises à jour uniquement lorsque certaines dates seuils comme la fin de l'année sont dépassées, je recommanderais de mettre les résultats dans un tableau normal et d'ajouter uniquement les mises à jour aussi souvent que vos dates seuils se produire (annuellement ?) à l'aide d'une procédure stockée. Sinon, votre MV prendra plus de temps à s'exécuter et nécessitera plus de ressources système à chaque exécution qui ajoute une nouvelle date.