Power Builder - Para Carlos Gil

 
Vista:
Imágen de perfil de Antonio
Val: 176
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Para Carlos Gil

Publicado por Antonio (1271 intervenciones) el 14/11/2005 19:29:35
Hola Carlos:

Mil gracias por tu ayuda...

pero la idea no es contar el numero de registros con Selec *, la idea es que si el valor que se busca dentro de los registros me devuelva el valor del campo siempre y cuando se aproxime y sea igual.

por ejemplo:

en el campo inferior hay un valor de 4,496.10 y en el campo superior hay un valor de 4,501.00 y yo en un variable tengo el valor de 4,499.15, entonces debe devolverme el valor de 4,501.00 ya que se acerca al valor de 4,501.00 pero si tuviera mi variable el valor de 4,497.00, me debe devolver el valor de 4,496.10 ya que esra má próximo a ese valor.

Nuevamente mil gracias por tu ayuda....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Para Carlos Gil

Publicado por Carlos Gil (124 intervenciones) el 15/11/2005 02:27:47
Hola Antonio:

Entonces lo que te escribi ayer ubica solo el registro con el rango adecuado para realizar la seleccion entre SUPERIOR e INFERIOR

Select inferior, superior, porcentaje Into :var_inf, :var_sup, :var_porc FromTablaCibss Where ( :dato_buscado - Inferior ) / (superior - :dato_buscado) > 0

If ( dato_buscado - var_inf ) - ( var_sup - dato_buscado ) < 0 Then
//El valor deseado es el inferior
Else
//superior
end If

Espero haberte entendido bien esta vez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Apróximado a un número

Publicado por Jancarlo (890 intervenciones) el 15/11/2005 03:40:37
Hola....

Si mal no te entiendo quieres extraer un valor apartir de otro segun este su proximidad.

Digamos que con esto establecemos cuando un valor se aproxima a el inferior o al superior

//Extraemos la diferencia de los dos valores y los dividimos en dos

diferencia=( valor_superior - valor_inferior ) / 2

Ejemplo:

valor_superior =2500
valor_inferior = 2000

Entonces la diferencia seria

diferencia=250 // (2500 - 2000) / 2

Podemos decir entonces que cuando el valor enviado es menor o igual que (valor_inferior + diferencia) entonces se muestra el valor_inferiror sino se muestra el valor_superior.

//Pongamos un ejemplo mandando un valor 2200 y los demas sigan siendo igual a lo de arriba.

Si 2200 < 2000 + 250 entonces
Mostrar 2000
Sino
Mostrar 2500
Fin

llevado a PB seria

if valor_enviado < valor_inferior + diferencia then
messagebox('Valor Devuelto',string(valor_inferior))
else
messagebox('Valor Devuelto',string(valor_superior))
end if

Bueno te dejo la idea de como hacerlo solo hace falta llevarlo al lenguaje que prefieras

Espero que sea lo que buscas...

Suerte !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar