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

ayuda ejercicio SQL

Estas en el tema de ayuda ejercicio SQL en el foro de Mysql en Foros del Web. Pues resulta que tengo un problema con un ejercicio y era para ver si alguien me puede echar una mano sobre que cambiariais o que ...
  #1 (permalink)  
Antiguo 08/03/2008, 16:05
 
Fecha de Ingreso: febrero-2007
Mensajes: 15
Antigüedad: 17 años, 9 meses
Puntos: 0
ayuda ejercicio SQL

Pues resulta que tengo un problema con un ejercicio y era para ver si alguien me puede echar una mano sobre que cambiariais o que añadiriais,el enunciado del ejercicio es este.

Una empresa tiene empleados de los que quiere conocer su nombre y la cantidad de clips que utiliza.
Cada vez que un empleado utiliza un clip hay que disminuir en uno el stock de clips e incrementar el número de clips usados por el empleado. El empleado es un avaricioso y jamás devuelve un clip.
Los clips son de distintos colores y debemos saber en cada momento cuantos disponemos por colores. De vez en cuando se reponen los clips y se deben actualizar datos.
Se pide diseñar el modelo relacional, generar las tablas y desarrollar los procedimientos, funciones y cursores que den el servicio adecuado para realizar los procesos anteriormente descritos.

Yo lo he hecho así:

Create table empleados(
Id int primary key,
Nombre varchar(25),
Cantidad int
);
Create table clips(
Id int primary key,
Stock int,
Color varchar(25)
);
Create table emp_clip(
Id_emp int,
Id_clip int,
Id_emp foreign key id(empleados) on update cascade,on delete cascade
Id_clip foreign key id(clips) on update cascade,on delete cascade


*Conocer el nombre y la cantidad de clips de cada empleado
Create procedere conocer(){
Select nombre,cantidad from empleados;
}
Call conocer();

*Conocer la cantidad de clips de cada color
Create procedure color(){
Select cant(color),from clips;}
Call color();
*uso de clip
Delimiter//
Create function operaciones (){
Begin
Declare stock,cantidad int;
Declare one cursor for select cantidad,stock, from empleados join clips;
Open one;
Fetch one into stock,cantidad set stock=stock--;
Set cantidad=cantidad++;
End;}
Delimiter;
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:01.