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

sumas y agrupaciones en mysql

Estas en el tema de sumas y agrupaciones en mysql en el foro de Bases de Datos General en Foros del Web. Hola a todos Me estoy partiendo la mente tratando de crear esta consulta: Tengo las siguientes tablas: paises (idpais, pais...), zonas (idzona, idpais, zona...) y ...
  #1 (permalink)  
Antiguo 20/08/2005, 05:33
 
Fecha de Ingreso: octubre-2003
Mensajes: 117
Antigüedad: 20 años, 6 meses
Puntos: 0
sumas y agrupaciones en mysql

Hola a todos
Me estoy partiendo la mente tratando de crear esta consulta:

Tengo las siguientes tablas: paises (idpais, pais...), zonas (idzona, idpais, zona...) y animales (idanimal, idzona, animal...)
Las zonas se enlazan a los paises por idpais (al que pertenece cada zona).. y los animales a las zonas por el idzona (al que pertenece cada animal).

Quiero la lista de las zonas que determinado pais, ordenado por la cantidad de animales que estas tengan...
O sea.. de un pais x quiero saber cuantos animales tiene cada zona (en orden de mayor a menor cantidad de animales).

y gracias de anticipado por la ayuda que me puedan aportar.
__________________
www.lsddigital.net
  #2 (permalink)  
Antiguo 20/08/2005, 17:52
Avatar de macedo  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 124
Antigüedad: 22 años, 3 meses
Puntos: 0
Hola lsddigital.

A ver si te sirve esto.

SELECT count(animales.idanimal) as Cuenta ,zonas.idzona
FROM animales, zonas where
animales.idzona=zonas.idzona And zonas.idpais=X
Group by zonas.idzona Order by Cuenta Desc

Saludos
  #3 (permalink)  
Antiguo 20/08/2005, 18:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 117
Antigüedad: 20 años, 6 meses
Puntos: 0
muuuchas gracias.. poco a poco me voy aclarando con las agrupaciones
__________________
www.lsddigital.net
  #4 (permalink)  
Antiguo 20/08/2005, 18:34
Avatar de macedo  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 124
Antigüedad: 22 años, 3 meses
Puntos: 0
Se me olvidaba.
Si lo que quieres es hacer una consulta textual (por el nombre del pais o por como empieza etc. p.e. Es -> "España" "Estado Unidos") debes sustituir

zonas.idpais=X

por

zonas.idpais in (select idpais from paises where pais like '%Es')

si siguiendo con el ejemplo.

Saludos
  #5 (permalink)  
Antiguo 20/08/2005, 18:40
 
Fecha de Ingreso: octubre-2003
Mensajes: 117
Antigüedad: 20 años, 6 meses
Puntos: 0
gracias de nuevo por tu respuesta.. aunque no creo q haga falta el like
zona.idpais in (select idpais from paises where idpais=$idpais)... el idpais es el dato q tengo para hacer la consulta...

por otro lado.. no me confio mucho en los like http://www.forosdelweb.com/f21/resultados-match-mysql-326755/
__________________
www.lsddigital.net
  #6 (permalink)  
Antiguo 20/08/2005, 18:54
Avatar de macedo  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 124
Antigüedad: 22 años, 3 meses
Puntos: 0
Lo decía por si querías sacar más de un pais por busqueda textual.

Si lo vas a hacer por idpais con la primera forma esta bien.


Saludos
  #7 (permalink)  
Antiguo 21/08/2005, 14:11
 
Fecha de Ingreso: octubre-2003
Mensajes: 117
Antigüedad: 20 años, 6 meses
Puntos: 0
Cita:
Iniciado por macedo
Hola lsddigital.

A ver si te sirve esto.

SELECT count(animales.idanimal) as Cuenta ,zonas.idzona
FROM animales, zonas where
animales.idzona=zonas.idzona And zonas.idpais=X
Group by zonas.idzona Order by Cuenta Desc

Saludos
mnn estas seguro que funciona?!... lo he probado y nada

-------------------------------------------------
dos horas despúes: vale vale.. ya me funciona... olvidalo.. y muchas gracias
__________________
www.lsddigital.net

Última edición por lsddigital; 21/08/2005 a las 14:38 Razón: Corregido error
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:49.