Indipendentemente dall'impostazione DATEFIRST effettiva, l'ultima domenica potrebbe essere trovata in questo modo:
SELECT DATEADD(day,
-1 - (DATEPART(weekday, GETDATE()) + @@DATEFIRST - 2) % 7,
GETDATE()
) AS LastSunday
Sostituisci GETDATE()
con un parametro @date
per ottenere l'ultima domenica prima di una data particolare.