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

Duda con query

Estas en el tema de Duda con query en el foro de SQL Server en Foros del Web. Saludos tengo la siguiente consulta para realizar una query. Tengo una query que me arroja los siguientes valores. El primer campo corresponde a HOLEID, y ...
  #1 (permalink)  
Antiguo 18/05/2011, 17:09
 
Fecha de Ingreso: enero-2010
Ubicación: Stgo - Chile
Mensajes: 73
Antigüedad: 14 años, 3 meses
Puntos: 0
Duda con query

Saludos tengo la siguiente consulta para realizar una query.

Tengo una query que me arroja los siguientes valores. El primer campo corresponde a HOLEID, y despues los 2 campos siguientes son FROM y TO

HOLEID FROM - TO
DDD-2X5 - 0 - 1.5
DDD-2X5 - 1.5 - 3
DDD-2X5 - 3 - 4.5
DDD-2X5 - 4.5 - 6
DDD-2X5 - 6 - 7.5
DDD-2X5 - 7.5 - 9
DDD-2X5 - 9 - 10.5
DDD-2X5 - 10.5 - 12
DDD-2X5 - 12 - 13.5

Lo que necesito ahora es con 2 controles poder filtrar un rango de fechas lo malo que no puedo ocupar el BETWEEN, por que las fechas tienen que estar entre el FROM y el TO Ejemplo si el FROM es 1 y el to 4 Deberia mostrar lo siguiente

HOLEID - FROM - TO
DDD-2X5 - 0 - 1.5
DDD-2X5 - 1.5 - 3
DDD-2X5 - 3 - 4.5

Tiene que tomar los valores si el FROM o el TO se encuentra entremendio de un intervalo.. No se como hacerlo en verdad si alguien sabe como, o alguna manera se lo agradeceria.. Gracias de Antemano.
  #2 (permalink)  
Antiguo 18/05/2011, 17:37
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Duda con query

No entendi
  #3 (permalink)  
Antiguo 19/05/2011, 08:11
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Duda con query

Hola degauss:

Al igual que Inicia, no me quedó muy claro que es lo que necesitas. Por un lado en tu post hablas de rangos de fechas, pero en ningún lado aparece fecha alguna. T tabla sólo contiene valores numéricos de punto flotante, que es muy diferente a un campo fecha.

Ahora bien, dices que no puedes ocupar BETWEEN, y yo digo que esa es la solución, lo que pasa es que no has dado con la manera en que tienes que utilizar este operador. Veamos si esto te sirve:

Código SQL:
Ver original
  1. DECLARE @TuTabla TABLE (HOLEID VARCHAR(10), DESDE FLOAT, HASTA FLOAT)
  2. INSERT INTO @TuTabla VALUES ('DDD-2X5', 0, 1.5)
  3. INSERT INTO @TuTabla VALUES ('DDD-2X5', 1.5, 3)
  4. INSERT INTO @TuTabla VALUES ('DDD-2X5', 3, 4.5)
  5. INSERT INTO @TuTabla VALUES ('DDD-2X5', 4.5, 6)
  6. INSERT INTO @TuTabla VALUES ('DDD-2X5', 6, 7.5)
  7. INSERT INTO @TuTabla VALUES ('DDD-2X5', 7.5, 9)
  8. INSERT INTO @TuTabla VALUES ('DDD-2X5', 9, 10.5)
  9. INSERT INTO @TuTabla VALUES ('DDD-2X5', 10.5, 12)
  10. INSERT INTO @TuTabla VALUES ('DDD-2X5', 12, 13.5)
  11.  
  12. SELECT * FROM @TuTabla WHERE
  13. 1 BETWEEN DESDE AND HASTA
  14. OR 4 BETWEEN DESDE AND HASTA
  15. OR DESDE BETWEEN 1 AND 4
  16. OR HASTA BETWEEN 1 AND 4

Observa en primer lugar que re-nombré los campos FROM y TO, ya que estas son PALABRAS RESERVADAS por SQL Server y por lo tanto NO DEBEN SER UTILIZADAS PARA IDENTIFICAR ALGÚN CAMPO O TABLA. Si insiste en utilizar estas palabras como identificadores siempre tendrás que ponerlas entre corchetes [].

Dale un vistazo a ver si te sirve el código.

Saludos
Leo.

Etiquetas: query
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 14:21.