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

Hola a todos,

Tengo la siguiente tabla:

Código MySQL:
Ver original
  1. CREATE TABLE `precios` (
  2.   `producto` varchar(9) default NULL,
  3.   `precio` int(2) default NULL,
  4.   `year` int(4) default NULL,
  5.   `mes` int(1) default NULL,
  6.   `semana` int(1) default NULL
  7. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  8.  
  9. INSERT INTO `precios` (`producto`, `precio`, `year`, `mes`, `semana`) VALUES
  10. ('variedad4', 60, 2010, 2, 4),
  11. ('variedad1', 77, 2010, 3, 3),
  12. ('variedad5', 88, 2010, 3, 4),
  13. ('variedad5', 41, 2010, 3, 3),
  14. ('variedad2', 46, 2010, 4, 4),
  15. ('variedad4', 64, 2010, 4, 2),
  16. ('variedad3', 9, 2010, 5, 2),
  17. ('variedad2', 81, 2010, 5, 3),
  18. ('variedad2', 4, 2010, 6, 1),
  19. ('variedad3', 90, 2010, 6, 4),
  20. ('variedad5', 46, 2010, 7, 1),
  21. ('variedad3', 56, 2010, 7, 3),
  22. ('variedad4', 39, 2010, 7, 1),
  23. ('variedad1', 40, 2010, 8, 2),
  24. ('variedad5', 52, 2010, 8, 2),
  25. ('variedad1', 77, 2011, 3, 3),
  26. ('variedad3', 80, 2011, 3, 1),
  27. ('variedad3', 9, 2011, 3, 2),
  28. ('variedad2', 4, 2011, 3, 1),
  29. ('variedad2', 46, 2011, 4, 4),
  30. ('variedad5', 46, 2011, 4, 1),
  31. ('variedad3', 56, 2011, 4, 3),
  32. ('variedad1', 40, 2011, 4, 2),
  33. ('variedad3', 90, 2011, 6, 4),
  34. ('variedad4', 39, 2011, 7, 1),
  35. ('variedad5', 52, 2011, 8, 2),
  36. ('variedad2', 74, 2012, 3, 2),
  37. ('variedad1', 83, 2012, 3, 1),
  38. ('variedad1', 62, 2012, 3, 4);

Tengo que sacar los registros que existen entre un determinado dato cronologico, que no es exactamente una fecha (year1, mes1, semana1) y otro dato semejante (year2, mes2, semana2).

Logré identificar cada uno de los registros con una consulta, asi:

Código MySQL:
Ver original
  1. select @rownua:=@rownua+1 'num', year, mes, semana FROM precios , (SELECT @rownua:=0) a

pero al tratar de realizar algo como esta consulta ( select @rownum:=@rownum+1 'num', producto,year, mes, semana FROM precios , (SELECT @rownum:=0) r where 'num' between 23 and 28 )veo que los valores

Código MySQL:
Ver original
  1. select @rownum:=@rownum+1 'num', producto,year, mes, semana FROM precios , (SELECT @rownum:=0) r
  2. where 'num' between
  3. (select @rownua:=@rownua+1 'num1' FROM precios , (SELECT @rownua:=0) a  where year=2011 and mes=4 and semana=2)
  4. (select @rownub:=@rownub+1 'num2' FROM precios , (SELECT @rownub:=0) b  where year=2012 and mes=2 and semana=1)

el resultado es errado.

Agradezco de antemano su ayuda.

Saludos