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

listar valores si los hay, de lo contrario...

Estas en el tema de listar valores si los hay, de lo contrario... en el foro de Mysql en Foros del Web. Saludos... Tengo una serie de valores que no se encuentran en una BD MySql... Estos son años: Código: 2005,2006,2007,2008,2009,2010,2011 Sin embargo hay un campo en ...
  #1 (permalink)  
Antiguo 23/03/2011, 05:04
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Pregunta listar valores si los hay, de lo contrario...

Saludos...

Tengo una serie de valores que no se encuentran en una BD MySql... Estos son años:

Código:
2005,2006,2007,2008,2009,2010,2011
Sin embargo hay un campo en mi base de datos que contiene algunos de esos años.

Si quiero listar los valores incluídos en mi base de datos, debería hacer algo como:

Código:
SELECT year, campo1, campo2 FROM tabla WHERE campo1='2' GROUP BY year;
El código de arriba me trae el listado agrupado por año con otros valores. Sin embargo (por ejemplo) si el año '2007' no esta incluído en mi base de datos, logicamente no lo lista.

Así, mi pregunta es... Si quiero listar todos los valores disponibles de mi base de datos, con el listado completo de los años deade 2005 hasta 2011, cómo lo podría hacer?

Gracias!
__________________
Andrew :P
  #2 (permalink)  
Antiguo 23/03/2011, 14:51
 
Fecha de Ingreso: abril-2008
Mensajes: 93
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: listar valores si los hay, de lo contrario...

A mi lo único que se me ocurre es que crees una tabla para los años y luego mediante un left outer join podrías scarlo.

Si no puedes crear la tabla, se me ocurre que lo puedes hacer "a lo bestia"

Código MySQL:
Ver original
  1. create table datos (year int, dato int);
  2.  
  3. (2001,1),(2001,2),
  4. (2002,6),(2002,2),(2002,6),
  5. (2004,2),(2004,5),
  6. (2006,3),(2006,2),
  7. (2007,3);
  8.  
  9. select years.year, sum(datos.dato)  
  10. from  
  11. (select 2001 year
  12. ) years
  13. ON (datos.year = years.year)

Etiquetas: listar
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 00:27.