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

Count En Varias Tablas

Estas en el tema de Count En Varias Tablas en el foro de Mysql en Foros del Web. Buenas Tardes llevo varios dias tratando de entonrar la solucion al siguiente problema y ta vez ustedes me puedan ayudar tengo las siguientes tablas Departamentos ...
  #1 (permalink)  
Antiguo 25/03/2009, 15:27
 
Fecha de Ingreso: agosto-2004
Mensajes: 38
Antigüedad: 19 años, 8 meses
Puntos: 0
Count En Varias Tablas

Buenas Tardes llevo varios dias tratando de entonrar la solucion al siguiente problema y ta vez ustedes me puedan ayudar

tengo las siguientes tablas

Departamentos
Codigo Nombre Activo

Ciudades
Codigo Nombre Activo CDepartamento

Comunas
Comuna Nombre Activo CCiudad


y kiero hacer una consulta ke me arroje

Nombre del Departamento | Numero de Ciudades | Numero de Comunas
--------------------------------------------------------------------------------------------
Meta | 50 | 730


Creo que es con un Count pero no he logrado que me funcione, Muchas gracias

y si de paso sabes de un buen material de referencia para mysql me lo pasan, ya ke no me gusta komo esta planteado el oficial
  #2 (permalink)  
Antiguo 25/03/2009, 15:32
Avatar de omar1977  
Fecha de Ingreso: abril-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 4
Respuesta: Count En Varias Tablas

con respecto a tu primera consulta luego te ayudo.....
por lo segundo....
esta fue mi biblia (de hecho aun la consulto)
http://mysql.conclase.net/
__________________
no hay nadie que sea tan inutil, por ultimo sirve como mal ejemplo
  #3 (permalink)  
Antiguo 25/03/2009, 16:34
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Count En Varias Tablas

Rogant,
prueba esta consulta para ver si te da lo que quieres:
Código sql:
Ver original
  1. SELECT d.nombreactivo, t1.totciudades totciudades, COUNT( co.comuna ) totcomunas
  2. FROM departamentos d
  3. INNER JOIN (
  4.  
  5. SELECT d.nombreactivo, COUNT( * ) totciudades
  6. FROM `departamentos` d
  7. INNER JOIN ciudades c ON d.codigo = c.cdepartamento
  8. GROUP BY d.codigo
  9. )t1 ON d.nombreactivo = t1.nombreactivo
  10. INNER JOIN ciudades c ON c.cdepartamento = d.codigo
  11. INNER JOIN comunas co ON co.cciudad = c.codigo
  12. GROUP BY d.codigo
  #4 (permalink)  
Antiguo 25/03/2009, 17:04
 
Fecha de Ingreso: agosto-2004
Mensajes: 38
Antigüedad: 19 años, 8 meses
Puntos: 0
Sonrisa Respuesta: Count En Varias Tablas

Muchisimas Gracias!!!!

Funciona a la perfeccion....

Pero si no es mucha molestia.... me podrias explicar la consula


De nuevo Muchisimas Gracias
  #5 (permalink)  
Antiguo 25/03/2009, 23:58
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Count En Varias Tablas

perdon, he repetido en lugar de corregido el texto. Mira el siguiente.
  #6 (permalink)  
Antiguo 26/03/2009, 00:00
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Count En Varias Tablas

1) esta consulta me muestra las ciudades de cada departamento, pues hago en ella su count. Es el centro de la cebolla, y llamo al resultado de la misma t1 (con ese alias puedo trabajar).
SELECT d.nombreactivo, count( * ) totciudades FROM `departamentos` dINNER JOIN ciudades c ON d.codigo = c.cdepartamentoGROUP BY d.codigo

2) hago una unión inner join de las otras tres tablas con esa consulta: la razón es que no puedo sacar resultados contando por dos criterios pues el modo en que se cruzan los datos ofrecería resultados engañosos para las ciudades, pues las contaría aunque se repitieran, ya que para cada comuna siempre habría una ciudad. En esta segunda parte cuento las comunas. Pero muestro en su selección los valores de la primera consulta, sobre todo t1.totciudades, pues gracias a que la relación se hace con d.codigo puedo hacerlo.

Espero haberme explicado bien.

Saludos

Última edición por jurena; 26/03/2009 a las 06:33
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 16:14.