En delphi sip, en sql ya es más dificil, no sé si sql server permite la creación de UDFs (funciones definidas por el usuario) si es así, puedes hacer una:
Código Delphi
[-]
DecodeDayOfWeekInMonth(FechaAviso, y, m, an, d);
NotaActualizada := EncodeDayOfWeekInMonth(YearOf(Fecha),
MonthOf(Fecha),
1,
d);
el 1 indica que en la primera semana del mes
el d indica el día de la semana (lunes, martes, miercoles, etc)
Edito: esto pertenece a Delphi 6 (no sé si está disponible en delphi 5, consulta la ayuda)
Saludos