Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

[SOLUCIONADO] Consulta between y condicion

Estas en el tema de Consulta between y condicion en el foro de Oracle en Foros del Web. Hola estimados.. Tengo la siguiente gran problema.. Tengo una Tabla Numeros que tiene los siguientes campos 1)ID (Identificador) 2)NUMERO (esta de 1 al 3000) 3)ANIOS ...
  #1 (permalink)  
Antiguo 16/07/2014, 21:30
Avatar de Nagatox  
Fecha de Ingreso: diciembre-2013
Ubicación: Chile
Mensajes: 34
Antigüedad: 10 años, 10 meses
Puntos: 0
Consulta between y condicion

Hola estimados..

Tengo la siguiente gran problema..

Tengo una Tabla Numeros que tiene los siguientes campos
1)ID (Identificador)
2)NUMERO (esta de 1 al 3000)
3)ANIOS (2011,2012,2013,2014)

y no me resulta esta consulta de betweenn con una condicion extra para extraer los numero de 1 a 50 del año 2014., ojo que el numero puede ser cualquie rango, como resultado de abajo me da mas numeros que los que pido., seguramente creo que no se puede agregar otra condicion.. pues que dicen amigos, me dan una mano..
Código SQL:
Ver original
  1. SELECT * FROM Numeros precio BETWEEN numero 1 AND 50 AND ANIOS=2014
SALUDOS

Última edición por gnzsoloyo; 17/07/2014 a las 10:46
  #2 (permalink)  
Antiguo 17/07/2014, 10:45
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Consulta between y condicion

Nagatox.. prodrías explicar mejor cual es el objetivo de la consulta?
registros del año 2014 y numeros del 1 al 50.
QUe te aparece y por que no te funciona?

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 17/07/2014, 10:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta between y condicion

A mi me parece bastante mal escrita...
Código SQL:
Ver original
  1. SELECT *
  2. FROM Numeros
  3. WHERE numero BETWEEN 1 AND 50 AND ANIOS = 2014
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 17/07/2014, 22:11
Avatar de Nagatox  
Fecha de Ingreso: diciembre-2013
Ubicación: Chile
Mensajes: 34
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Consulta between y condicion

hola gracias por responder..

necesito extraer numeros entre rango1 y rango2 y a su vez que sea de un año cualquiera

saludos
  #5 (permalink)  
Antiguo 18/07/2014, 02:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta between y condicion

Quita el año de la condición a cumplir...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 18/07/2014, 07:04
Avatar de Nagatox  
Fecha de Ingreso: diciembre-2013
Ubicación: Chile
Mensajes: 34
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Consulta between y condicion

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Quita el año de la condición a cumplir...
hola
lo quitaria , pero es fundamental el año con esos rangos de numeros o habra alguna forma de hacerlo, el cual pido ayuda , para que la query cumpla con esos criterios de numeros y años ala vez

saludos
  #7 (permalink)  
Antiguo 18/07/2014, 07:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta between y condicion

Pues lo que estás diciendo ahora es contradictorio con lo que decías antes:
Cita:
Iniciado por Nagatox Ver Mensaje
hola gracias por responder..

necesito extraer numeros entre rango1 y rango2 y a su vez que sea de un año cualquiera

saludos
O consideras el año, o no.
Aclara mejor ese detalle.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 18/07/2014, 07:18
Avatar de Nagatox  
Fecha de Ingreso: diciembre-2013
Ubicación: Chile
Mensajes: 34
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Consulta between y condicion

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Pues lo que estás diciendo ahora es contradictorio con lo que decías antes:


O consideras el año, o no.
Aclara mejor ese detalle.
hola ,

primero sin darte cuenta, me respondiste el porque de la cantidad de tus mensajes en los foros.

una consulta que muestre un rango entre n1 y n2 mas un año 2014 , no se en que me exprese mal, ahora me dices quita el año, pero el año tb va en el resultado con los rangos de numeros

saludos
  #9 (permalink)  
Antiguo 18/07/2014, 07:27
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta between y condicion

A ver si se entiende:
Cuando dices
Cita:
necesito extraer numeros entre rango1 y rango2
Eso se hace simplemente con
Código SQL:
Ver original
  1. SELECT *
  2. FROM Numeros
  3. WHERE numero BETWEEN 1 AND 50
Donde los valores se deberán ingresar de algún modo que tu definirás. En el caso de tu ejemplo, es entre y y 50.
Ahora bien, cuando dices
Cita:
y a su vez que sea de un año cualquiera
no queda claro si te refieres a todos los años, o a que vas a ingresar el año por parámetro.
Para el primer caso, quitas el año de la condición, para el otro, necesitas definir cómo ingresarás la busqueda del año, o si la busqueda será también por rango.

Por eso dije que hay cosas poco claras en tu pregunta.

Cita:
primero sin darte cuenta, me respondiste el porque de la cantidad de tus mensajes en los foros.
No tengo idea de a qué te refieres, pero me parece que es irrelevante para el tema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 18/07/2014, 07:46
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Consulta between y condicion

Totalmente deacuerdo con gnzsoloyo.
En SQL las reglas son simples, como la vida misma.

Si necesitas el año, lo pones, si no lo necesitas, no lo pones.
Para entenderte mejor, te recomiendo cojas un pequeño conjunto de datos, nos dices que resultado es el que esperarias y te ayudamos en la consulta
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #11 (permalink)  
Antiguo 19/07/2014, 12:43
Avatar de Nagatox  
Fecha de Ingreso: diciembre-2013
Ubicación: Chile
Mensajes: 34
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Consulta between y condicion

Muchas gracias por responder..

Tengo una tabla

con los siguientes campos

TABLE llamada Numero
ID(campo)
numeros(campo)
Años (campo)

y somo salida debo mostrar numeros del 1-50 del año 2014. ejemplo

N° / año
1 2014
2 2014
3 2014
4 2014
5 2014
.

El problema que el rango del 1 al 50 es variable, pueden ingresarme del 50-100
y el año tambien puede cambiar..

es por ello mi consulta
  #12 (permalink)  
Antiguo 19/07/2014, 16:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta between y condicion

Cita:
El problema que el rango del 1 al 50 es variable, pueden ingresarme del 50-100
y el año tambien puede cambiar..
Vamos por partes: La query, tal y como te la sugerimos desde el principio es total y absolutamente correcta para ese propósito:
Código SQL:
Ver original
  1. SELECT *
  2. FROM Numeros
  3. WHERE numero BETWEEN vinicial AND vfinal AND ANIOS = vanio
Lo que debes tener en cuenta es que si los valores variarán en las ejecuciones, entonces la query debe ser parametrizada en cada una de las ejecuciones.
En otras palabras, no es la query lo que está mal, sino la forma de usarla: No puedes poner valores fijos.
La solución tiene sólo dos caminos: O la manejas por stored procedure, donde los tres parámetros de entrada sean los que se usen, o bien la creas dinámicamente por programación.

Depende de qué quieras hacer.

Sintetizando: No es un problema de sintaxis de query. Es de método de parametrización.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 19/07/2014, 18:34
Avatar de Nagatox  
Fecha de Ingreso: diciembre-2013
Ubicación: Chile
Mensajes: 34
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Consulta between y condicion

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Vamos por partes: La query, tal y como te la sugerimos desde el principio es total y absolutamente correcta para ese propósito:
Código SQL:
Ver original
  1. SELECT *
  2. FROM Numeros
  3. WHERE numero BETWEEN vinicial AND vfinal AND ANIOS = vanio
Lo que debes tener en cuenta es que si los valores variarán en las ejecuciones, entonces la query debe ser parametrizada en cada una de las ejecuciones.
En otras palabras, no es la query lo que está mal, sino la forma de usarla: No puedes poner valores fijos.
La solución tiene sólo dos caminos: O la manejas por stored procedure, donde los tres parámetros de entrada sean los que se usen, o bien la creas dinámicamente por programación.

Depende de qué quieras hacer.

Sintetizando: No es un problema de sintaxis de query. Es de método de parametrización.
Hola efectivamente

agradesco la respuesta, como tambien mencionaste la solucion que me dieron era la correcta, y el problema porque no me resulto era poque al mirar la base de datos, el campo numero estaba de tipo varchar2 y por tal motivo no me agarro bien la consulta del between y se salia del rango inicial y final.

Muchas gracias a todos
  #14 (permalink)  
Antiguo 19/07/2014, 18:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta between y condicion

Cita:
el campo numero estaba de tipo varchar2
Tienes que tener mucho cuidado en Oracle con ese tipo de cosas. Oracle no hace conversiones implícitas, como sí lo hacen otros DBMS, y los resultados no son iguales.
La misma query en MySQL, por ejemplo, hubiese funcionado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:47.