Creo que con SQL va a ser dificil solventar la papeleta, porque por ejemplo si le sumamos 4 meses al mes 10, nos da 14, mes que no existe.
Si no tenemos en cuenta el SQL, con programación en Delphi, si que podemos sumar meses sin problemas de este tipo:
Un ejemplo.
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var
f:Tdate;
begin
f:=Date - 40;
ShowMessage(FormatDatetime('dd/mm/yyyy',f));
f:=incMonth(f, 3);
ShowMessage(FormatDatetime('dd/mm/yyyy',f));
end;
Solución que propongo:
Crear una tabla temporal con un campo calculado y quedaría resuelto.
Un Saludo.