Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/11/2013, 08:23
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Utilizar count dentro de un alter table

Tienes dos errores de planteamiento

1.- En Alter table solo debes crear el campo, sin datos. Despues puedes hacer un UPDATE para cargar los datos....

2.- Ese campo que te piden seria un campo calculado, luego es de por si un error de diseño.

Código MySQL:
Ver original
  1. SELECT c.codClub, c.nomClub,c.numSoc,sbc.empleats
  2. FROM club c INNER JOIN
  3.     (select p.codClub,count(codClub) empleats from persona p group by p.codClub) Sbc
  4.      ON c.codClub=Sbc.codClub;

Esto te da lo que buscas sin peligro de que en algun momento el numero de personas y el de empleados sean incoherentes....

Si "numSoc" es lo que me imagino, numero de socios, deberías aplicar la misma solución...

Va te lo doy hecho

Código MySQL:
Ver original
  1. CREATE VIEW infoClub AS
  2. SELECT c.codClub, c.nomClub,sbcSocis.numSoc,sbcEmpleats.numTreb
  3. FROM club c
  4.    INNER JOIN (select p.codClub,
  5.                                  count(codClub) numTreb
  6.                        from persona p group by p.codClub) sbcEmpleats
  7.      ON c.codClub=sbcEmpleats.codClub
  8.    INNER JOIN (select s.codClub,
  9.                                  count(s.codClub) numSoc
  10.                        from socis s group by s.codClub) sbcSocis
  11.      ON c.codClub=sbcSocis.codClub;

Eso crea una vista "infoClub" que te da los datos de los clubs... siempre actualizados... si das de alta una persona nueva o un socio nuevo no deberas preocuparte de actualizar nada para que salga el numero correcto.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.