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

Saber los primeros 3 lugares de una consulta

Estas en el tema de Saber los primeros 3 lugares de una consulta en el foro de Mysql en Foros del Web. hola!! Espero que esten bien y les deseo felices fiestas antes que nada Pues aca va mi situación, tengo la siguiente tabla, que de antemano ...
  #1 (permalink)  
Antiguo 18/12/2013, 08:54
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Saber los primeros 3 lugares de una consulta

hola!!

Espero que esten bien y les deseo felices fiestas antes que nada

Pues aca va mi situación, tengo la siguiente tabla, que de antemano se que no esta muy bien pensada, pero no lo hice yo y no la puedo moficar,

municipios_puntaje
-----------------------
id_puntaje
clave_estado
clave_municipio
anio
enero
febrero
marzo
abril
mayo
junio
julio
agosto
septiembre
octubre
noviembre
diciembre

entonces yo para sacar los puntajes del año 2013 hago la siguiente consulta:

Código MySQL:
Ver original
  1. SELECT id_puntaje,
  2.     clave_estado,
  3.     clave_municipio,
  4.     anio,
  5.     SUM(enero) enero,
  6.     SUM(febrero) febrero,
  7.     SUM(marzo) marzo,
  8.     SUM(abril) abril,
  9.     SUM(mayo) mayo,
  10.     SUM(junio) junio,
  11.     SUM(julio) julio,
  12.     SUM(agosto) agosto,
  13.     SUM(septiembre) septiembre,
  14.     SUM(octubre) octubre,
  15.     SUM(noviembre) noviembre,
  16.     SUM(diciembre) diciembre  
  17. FROM municipios_puntaje
  18. WHERE clave_estado='15' AND anio='2013'
  19. GROUP BY clave_municipio

lo que me da un resultado parecido a este:

Código:
id_puntaje  clave_estado  clave_municipio  anio  enero  febrero  marzo  abril  mayo  junio  julio  agosto  septiembre  octubre  noviembre  diciembre
10	15	1	2013	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	77.68	NULL
18	15	2	2013	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	79.42	NULL
26	15	3	2013	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	78.48	NULL
34	15	4	2013	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	77.07	NULL
42	15	5	2013	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	78.62	NULL
50	15	6	2013	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	80.57	NULL
58	15	7	2013	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	80.6	NULL
66	15	8	2013	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	76.02	NULL
74	15	9	2013	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	81.02	NULL
los demas meses salen null porque no hay datos, solo hay de noviembre,

bueno el caso es que necesito que en la misma consulta me salgan los 3 primeros lugares de cada mes y de alguna forma marcalos o ponerles una bandera

sera posible?

lei sobre el MAX y MIN pero como le hago para el 2° lugar ??

gracias
  #2 (permalink)  
Antiguo 18/12/2013, 11:12
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Saber los primeros 3 lugares de una consulta

Código MySQL:
Ver original
  1. SELECT sbc.clave_estado,
  2.     sbc.clave_municipio,
  3.     sbc.anio,
  4.     SUM(sbc.sEnero) enero,
  5.     SUM(sbc.sFebrero) febrero,
  6.     SUM(sbc.sMarzo) marzo,
  7.     ....
  8. FROM ((SELECT clave_estado,
  9.     clave_municipio,
  10.     anio,
  11.     SUM(enero) sEnero,
  12.     0 sFebrero,
  13.     0 sMarzo,
  14.  
  15. ....
  16.  
  17. FROM municipios_puntaje
  18. WHERE clave_estado='15' AND anio='2013'
  19. GROUP BY clave_municipio
  20. ORDER BY sEnero DESC
  21. (SELECT clave_estado,
  22.     clave_municipio,
  23.     anio,
  24.     0 sEnero,
  25.     SUM(febrero) sFebrero
  26.     0 sMarzo,
  27.  
  28. ....
  29.  
  30. FROM municipios_puntaje
  31. WHERE clave_estado='15' AND anio='2013'
  32. GROUP BY clave_municipio
  33. ORDER BY sFebrero DESC
  34. SELECT ....) sbc
  35. GROUP BY sbc.clave_estado,
  36.     sbc.clave_municipio,
  37.     sbc.anio
  38. ORDER BY sbc.clave_municipio

Ojo, que tienes que completarla....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 19/12/2013 a las 02:46
  #3 (permalink)  
Antiguo 18/12/2013, 11:52
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: Saber los primeros 3 lugares de una consulta

wow quimfv, muchas gracias por tu tiempo

dejame probar y les comento como me va!!
  #4 (permalink)  
Antiguo 19/12/2013, 02:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Saber los primeros 3 lugares de una consulta

Código MySQL:
Ver original
  1. GROUP BY sbc.clave_estado,
  2.     sbc.clave_municipio,
  3.     sbc.anio

Faltaba esto en la penultima linea.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: null, primeros, select, tabla
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 09:13.