Visual Basic - Consulta SQL

Life is soft - evento anual de software empresarial
   
Vista:

Consulta SQL

Publicado por Juan (52 intervenciones) el 27/09/2008 17:22:43
Hola,

Quisiera realizar una consulta SQL basada en la siguiente tabla:

La tabla tiene 4 campos...

Artículo / Máximo / Mínimo / Intervalos
Listón / 8,50 / 12,00 / 0,50 (por ejemplo)

lo que quiere decir que el Listón se fabrica en 8,50 / 9,00 / 9,50 / 10,00 / 10,50 / ...12.00 mm

Lo que quiero hacer es que me busque todos aquellos artículos que cuyas medidas coincidan con el resultado de un textbox con una tolerancia de +- 0.10

Eje:

text box= 12,10

Buscaría aquellos artículos de la tabla que se fabriquen en 11,90 ó 12,00 ó 12,10 por lo que el Listón (del ejemplo) sería un resultado encontrado.

Agradecería culaquier ayuda

Saludos
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:Consulta SQL

Publicado por juan (52 intervenciones) el 27/09/2008 17:28:50
Perdón, quería decir...

Buscaría aquellos artículos de la tabla que se fabriquen en 12,00 ó 12,10 ó 12,20 por lo que el Listón (del ejemplo) sería un resultado encontrado.

Gracias
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:Consulta SQL

Publicado por igor (633 intervenciones) el 27/09/2008 19:24:31
Primero, si textbox = 12,10 los valores son entre 12,00 y 12,20.

Para esto podemos hacer:

"SELECT * FROM tabla WHERE tabla.Máximo <= " & val(textbox.text)+0.10 & "AND tabla.Minimo >= " & val(textbox.text)-0.10

Lo que se traduce en:
"SELECT * FROM tabla WHERE tabla.Máximo <=12,00 AND tabla.Minimo >=12,20"
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:Consulta SQL

Publicado por y yo tambien (66 intervenciones) el 27/09/2008 21:51:50
Sabes lo que contestas?

"los valores son entre 12,00 y 12,20 " (erroneo)

y qué pasa con los valores 12,01, 12,02...12,19?

según tu respuesta, la consulta también mostraría esos valores, pero no los quiere porque tienen que ser de 0,10 en 0,10.

¿Cómo se lo resuelves listillo???
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:Consulta SQL

Publicado por igor (633 intervenciones) el 27/09/2008 21:59:57
Pues mira que yo el número ... lo desconozco.

Debe ser un nuevo número inventado por tí. Yo creo que deberías ir corriendo a patentar esa idea, y de paso te quedas en la oficina de patentes, porque ellos necesitan mucho mas tus servicios.

Un saludo NOP.
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:Consulta SQL

Publicado por Juan (52 intervenciones) el 29/09/2008 11:07:03
Bueno, creo que se ha creado un poco de lío. Quizás no me he explicado bien.

La respuesta de Igor es la que yo había realizado en un primer momento...
SELECT * FROM Tablas WHERE (Máximo+0.10 >= Text box AND Mínimo -0.10 <= textbox)

El problema con esta búsqueda es que si el resultado del textbox en lugar de 12.00 es 10.18 me va ha dar como resultado válido y no tendría que ser así.

Ej:
Valores de la tabla para el artículo Listón (Max=12.00 / Mín=8.50 Intervalos=0.50)
Esto sería:
8,50 / 9,00 / 9,50 / 10,00 ..... 12,00

Si el resultado a buscar es de 10,18 no nos tendría que encontrar nada ya que 10,18 es mayor que 10,00 +- 0.10

Complicado , eh???? Espero haberme explicado mejor

Saludos
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:Consulta SQL

Publicado por igor (633 intervenciones) el 29/09/2008 20:23:47
Para aclararnos, tenemos un marjen de +- 0,10 y con un text box= 12,00 debemos buscar aquellos artículos de la tabla que se fabriquen en 11,90 ó 12,00 ó 12,10, pero no nos valen los artículos de 12,07.

Este problema no se puede resolver con SQL. Como ya he mencionado otras veces, este tipo de problema surge de no pensar bien la estructura que debe tener nuestra DB.

Yo aconsejo tomar el tiempo necesario en estructurar bien las tablas para acomodar los datos. De lo contrario estaremos siempre intentado encajar un cubo en un circulo.

En este caso y si queremos seguir dandonos de tortas, podemos utilizar código VB para resolver aquello que no puede resolver SQL. Podemos ejecutar una consulta de creación de tabla con la sentencia anterior y eliminar uno a uno los registros que no se acojen a nuestros deseos.

Como se puede observar, cualquier solución al problema será generar mayores problemas, y no se sostrendrá mucho tiempo.
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:Consulta SQL

Publicado por y yo tambien (66 intervenciones) el 29/09/2008 22:13:54
Este problema no se puede resolver con SQL. Como ya he mencionado otras veces, este tipo de problema surge de no pensar bien la estructura que debe tener nuestra DB.

Yo aconsejo tomar el tiempo necesario en estructurar bien las tablas para acomodar los datos. De lo contrario estaremos siempre intentado encajar un cubo en un circulo.

En este caso y si queremos seguir dandonos de tortas, podemos utilizar código VB para resolver aquello que no puede resolver SQL. Podemos ejecutar una consulta de creación de tabla con la sentencia anterior y eliminar uno a uno los registros que no se acojen a nuestros deseos.

Como se puede observar, cualquier solución al problema será generar mayores problemas, y no se sostrendrá mucho tiempo.

--------------------------------------------------------------------------------

Eres un hacha, de todas las barbaridades que has escrito, me quedo con la última:

"cualquier solución al problema será generar mayores problemas,"

Eso no se le habría ocurrido ni a Einstein. Puedes patentar la frase, igual te dá mas dinero que decir tonterías en los foros.
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:Consulta SQL

Publicado por Juan (52 intervenciones) el 30/09/2008 10:15:37
Pues vale, qué putada!!!!

Ok, quedemos en que no se puede hacer este tipo de consulta. En tal caso, me podrías decir si sabes redondear un decimal a una determinada parte decimal. Por ejemplo 8,68 se redondearía a 8,60 mientras que 8,80 se redondearía a 8,90 (es decir redondeamos a múltiplos de 0.30). Con esto resuelto creo que podría solucionar la búsqueda

Gracias de nuevo
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:Consulta SQL

Publicado por igor (633 intervenciones) el 30/09/2008 21:02:24
En un principio solo se pueden hacer redondeos a enteros, pero si utilizas la imaginación podrás buscar una solución. Ejemplo, para redondear a 0.10 multiplicamos por 10, redondeamos y dividimos por 10.

A partír de ahí tendrás que seguir tu solo, ya que auguro multitud de problemas y no me gusta perder el tiempo.
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