Wie und wann reports gestartet werden hat keinen einfluss auf deine Datenbank. Ein DB-group-by gruppiert gleiche werte - und da du 15 werte von 8:00 - 8:15 zusammenfassen willst, musst du einen gemeinsamen wert berechnen.

Also irgendwas mit

SELECT Sum(CallDuration)
FROM Calls
WHERE (Hour([time]) == 8 && Minute([Time]) < 15 && Minute([Time]) >= 00)

// .. for a single quarter hour, you are done by Grouping globally, but
// .. if you have moe than one quarter-hour, use this group-by
// GROUPBY (Hour([time]) * 60 + Minute([time]))