12/06/2011, 17:04
|
| | | Fecha de Ingreso: junio-2011 Ubicación: Piedecuesta-Santader-Piedecuesta
Mensajes: 7
Antigüedad: 13 años, 6 meses Puntos: 1 | |
Respuesta: Conteo Registros por Grupo para hallar la diferencia con el registro de ot Hola que tal, Estuve revisando tu problema y creo que lo puedes relizar una consulta como esta :
Select count(IdGrupo)'Cantidad Estudiantes',Capacidad 'Capacidad Grupo',
(Capacidad-Count(IdGrupo)) 'Cantidad Restante'
from Estudiante,Grupo where IdGrupo=101;
Los campos que estan en rojo son las variables que puedes cambiar
Pero si quieres tener siempre el referente de la cantidad de cupos que estan disponibles en la entidad Grupos sin necesidad de hacer la consulta anterior constantemente , Puedes incorporar un nuevo campo que se llame
CapacidadDisponible y realizar un Trigger para que cada vez que se Ingrese un Estudiante en un Grupo, Me vaya descontando la capacidad disponible
Sería algo como esto:
Las entidades quedarían así :
Drop table if exists Grupo;
Create table Grupo (
Id_Grupo Int,
Capacidad Int,
CapacidadDisponible Int
);
Drop table if exists Estudiante;
Create table Estudiante(
Cod_Estu Int,
IdGrupo Int,
Periodo Int
);
Creas las entidades y paso seguido creamos el Trigger, para que cada vez que realices un Insert en Estudiante la cantidad disponible vaya Disminuyendo por cada estudiante nuevo que se Registre. Importante: El trigger lo debes crear antes de que realices los Insert, de lo contrario no se modificaran los campos.
Delimiter//
Drop trigger if exists NuevaCapacidadGrupo;//
Create trigger NuevaCapacidadGrupo
After insert on Estudiante
For each row
Update Grupo set CapacidadDisponible=CapacidadDisponible-1 where New.IdGrupo=Id_Grupo;
Espero que te haya servido de ayuda
Espero comentarios.........
Andrés Martinez |