Bueno, no tengo el script, pero puedes jugar con las funciones:
Para
@UnaFecha dada
Código:
-- Obtiene el dia de la semana de @UnaFecha
Set @Dia = DATEPART(dw, @UnaFecha)
If @Dia = @@DATEFIRST
--ES EL PRIMER DIA
Set @FechaInicioSemana = @UnaFecha
Else
Set @FechaInicioSemana = DATEADD(dd, -(@Dia-@DistanciaAlComienzoDeLaSemana), @UnaFecha)
@@DATEFIRST Es el primer dia de la semana, que puede ser domingo o lunes segun la configuración del servidor
Lo que esté en rojo, resta @DistanciaAlComienzoDeLaSemana dias a la fecha, esto depende del valor de @@DATEFIRST, por ejemplo, si @@DATEFIRST es 1 (lunes), a cualquier dia habria que restarle (@Dia-1), por ejemplo, a un miercoles (@Dia=3) habria que restarle 2 para obtener el lunes. Pero si @@DATEFIRST es 7 (domingo), habria que restarle 4 (@Dia-7)*(-1) (ya que sale valor negativo, y si resta un valro negativo en realidad lo suma...
Bueno, esto último igual me quedó un poco lioso