Bueno como estas en PHP te voy a poner un ejemplo sencillo usando PHP
Código PHP:
$cantidad = 305;
$encima = mysql_query("SELECT monto FROM tabla WHERE monto >= 305 ORDER BY monto ASC LIMIT 1");
$debajo = mysql_query("SELECT monto FROM tabla WHERE monto <= 305 ORDER BY monto DESC LIMIT 1");
if(mysql_num_rows($encima)>0){
$encima = mysql_fetch_assoc($encima);
$mayor = $encima['monto'];
}
if(mysql_num_rows($debajo)>0){
$debajo = mysql_fetch_assoc($debajo);
$menor = $debajo['monto'];
}
if(!empty($menor) && !empty($mayor)){
$cercano = abs($cantidad-$mayor);
if($cercano > abs($cantidad-$menor)){
$cercano = abs($cantidad-$menor);
}
}
else{
if(!empty($mayor){
$cercano = $mayor;
}
else{
$cercano = $menor;
}
}
echo 'El número más cercano es: '.$cercano;
Esta es una solución para que se vea facilmente, seguramente haya alguna forma de hacerlo en una sola consulta.