Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/03/2012, 01:42
mixsolojoomla
 
Fecha de Ingreso: marzo-2012
Mensajes: 6
Antigüedad: 12 años
Puntos: 1
Pregunta Respuesta: Obtener registros en un rango de datos

Cita:
Iniciado por quimfv Ver Mensaje
El orden de entrada en una bbdd relacional es irelevante, luego por mucho que el insert este ordenado no puedes fiarte de que cuando se lea la bbdd se vaya a leer en el mismo orden.

Luego tu intento de agregar un numerador a los registros no tienes ninguna garantia de que funcione.

Para que funcionara deberías usar un ORDER BY para indicarle al motor en que orden quieres los registros....

apasar de ello creo que te estas complicando un poco la vida,


Código MySQL:
Ver original
  1. SELECT @rownum:=@rownum+1 'num',
  2.              producto,
  3.              YEAR,
  4.              mes,
  5.              semana
  6. FROM precios , (SELECT @rownum:=0) r
  7. WHERE YEAR>=YYYY1 AND YEAR<=YYYY2
  8.         AND mes>=MM1 AND mes<=MM2
  9.         AND semana>=SS1 AND semana<=SS2
  10. ORDER BY YEAR,mes,semana,producto;

donde

YYYYx son los años buscados (pueden ser iguales)
MMx idem para el mes
SSx idem para la semana

Si no lo necesitas puedes quitar el numerador...
Hola quimfv,

Gracias por tu respuesta.

Sólo hay un inconveniente respecto a los meses y semanas, en algunas ocasiones la primera "fecha" puede ser por ejemplo year =210 mes =8 semana=4 y la segunda year=2011 mes=3 semana= 1. En ese caso no puedo comparar mes con mes y semana con semana.

Esa es la razon del contador y tienes razon frente a la falta del orden by, pero no se si estoy errado, me parece que necesitaría capturar la identificacion de cada limite del rango para poder saber cuales son los registros del rango.

Cualquier idea que se les ocurra es bienvenida.

Saludos,