Bienvenidos a un nuevo curso. Ahora estoy en el ciclo de grado superior: Desarrollo de aplicaciones multiplataforma. Y voy a ser parte del experimento de la formación dual. Estaré haciendo practicas durante un año, y a la vez finalizando la formación.

Deseadme suerte.

lunes, 18 de abril de 2016

6-7 practica 3

0

Puedes acceder a la teoría necesaria para hacer los ejercicios,  a los ejercicios y las bases de datos necesarias aquí, aquíaquí y aquí.

19.-
/* Se listarán los datos de aquellos Departamentos cuyo número esté comprendido entre los dos números de departamento 
que se pasen como argumento al procedimiento. */
delimiter $$
drop procedure if exists ejercicio19 $$
create procedure ejercicio19(in e_numde_1 int, in e_numde_2 int)
begin
declare v_numde int;
declare v_nomde varchar(20);
declare v_nomem varchar(18);
declare v_salario int;
declare v_comision int;
declare v_ultima_fila int default 0;
declare v_total_empleado int;
declare v_total_sueldo int;
declare c_departamentos cursor for
select numde, nomde
from departamentos
where numde>=e_numde_1 
and numde<=e_numde_2
order by numde;
declare c_empleados cursor for
select nomem, salario, comision
from empleados
where numde=v_numde;
declare continue handler for not found 
set v_ultima_fila=1;
open c_departamentos;
cursor_departamentos: loop
fetch c_departamentos into v_numde, v_nomde;
if v_ultima_fila=1 then
leave cursor_departamentos;
end if;
select concat('departamento: ',v_numde,' - ',v_nomde) as 'datos departamentos';
set v_total_empleado=0;
set v_total_sueldo=0;
open c_empleados;
cursor_empleados: loop
fetch c_empleados into v_nomem, v_salario, v_comision;
if v_ultima_fila=1 then
leave cursor_empleados;
end if;
select concat('empleado: ',v_nomem,' - salario: ',v_salario,' - comision: ',
ifnull(v_comision, 0),' - total salario: ',(v_salario+ifnull(v_comision,0))) as 'datos empleados';
set v_total_empleado=v_total_empleado+1;
set v_total_sueldo=v_total_sueldo+(v_salario+ifnull(v_comision,0));
end loop cursor_empleados;
close c_empleados;
select concat('empleados: ',v_total_empleado,' - total sueldo: ',v_total_sueldo) as 'totales departamentos';
set v_ultima_fila=0;
end loop cursor_departamentos;
close c_departamentos;
end $$
delimiter ;   


20.-
/* Escribir un procedimiento que suba el sueldo de todos los empleados que ganen menos que el salario medio de su oficio. 
La subida será del 50% de la diferencia entre el salario del empleado y la media de su oficio. 
La transacción no deberá quedarse a medias. */
delimiter $$
drop procedure if exists ejercicio20 $$
create procedure ejercicio20()
begin
declare v_emp_no int(4);
declare v_salario_medio float(6,2);
declare v_ultima_fila int default 0;
declare c_empleados cursor for
select emp_no
from empleados e1
where salario < (select avg(SALARIO)
from empleados
where oficio = e1.oficio)
for update;
declare continue handler for not found 
set v_ultima_fila=1;
start transaction;
open c_empleados;
empleados_cursor: loop
fetch c_empleados into v_emp_no;
if v_ultima_fila=1 then
leave empleados_cursor;
end if;
select avg(salario)
into v_salario_medio
from empleados
where oficio = 
(select oficio
from empleados
where emp_no = v_emp_no);
update empleados
set salario = salario + 0.5*(v_salario_medio-salario)
where emp_no = v_emp_no;
end loop empleados_cursor;
close c_empleados;
commit;
end $$
delimiter ;






Related Posts:

  • Ficheros I Ver Ficheros según su función. Páginas 5 y 6. Hacer los ejercicios ejercicios_ficheros_segun_su_función.pdf Tipos de ficheros Ficheros permanentes… Read More
  • Ficheros II Ver las transparencias 15 a 24 de organizacion_ficheros.pdf Ver/hacer ejemplos método_resto.pdf (técnica de Direccionamiento calculado de Hashing). … Read More
  • Ficheros III y IVDado que solo es teoría, os dejo los medios para estudiar: 3º Leer introduccion_bases_de_datos.pdf Hacer los ejercicios ejercicios_introduccion_bases_… Read More
  • practica 10.2Puedes acceder a la teoría necesaria para hacer los ejercicios,  a los ejercicios y la base de datos necesaria aquí, aquí y aquí. … Read More
  • practica 10Puedes acceder a la teoría necesaria para hacer los ejercicios  y  a los ejercicios aquí y aquí. 1. 2. 3. … Read More

0 comentarios:

Publicar un comentario

Etiquetas actuales

BD (67) DEF (64) PROG (64) SQL (44) Java (29) PRACTICAS (20) php (18) DI (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) HTML (13) SGE (12) ERP (9) CONSULTAS (8) css (8) Linux (5) XML (5) Android (4) PDM (4) C (3) NetBeans (3) PSP (3) SMARTY (3) comandos (3) HOOK (2) POST (2) XSD (2) cURL (2) JS (1) MEDIA-QUERYS (1) PDO (1) RESPONSIVE (1) TPL (1) TRADUCCIÓN (1) app_inventor (1)

Todas las etiquetas

EJER (78) BD (67) DEF (64) PROG (64) SQL (44) c# (40) Programación (39) Ficheros (36) Java (29) bases de datos (21) PRACTICAS (20) lenguajes de marcas (19) AD (18) Entorno de desarrollo (18) php (18) PROCEDIMIENTOS (17) DI (16) FORM (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) lenguaje C (16) E/R (14) HTML (13) SGE (12) Sistemas informáticos (10) ERP (9) CONSULTAS (8) TRANSACCIONES (8) TRIGGER (8) VISUAL BASIC (8) css (8) FUNCIONES (7) html5 (6) Ada (5) EXAMEN (5) Linux (5) XML (5) estructuras (5) Android (4) DISEÑO (4) INTERFAZ (4) LOG (4) OpenBravo (4) PDM (4) ACTUALIZAR (3) C (3) DIAGRAMA (3) Directorios (3) NEW (3) NOR (3) NetBeans (3) OLD (3) PSP (3) SMARTY (3) comandos (3) css3 (3) AISLAMIENTOS (2) C++ (2) CONTROLERRORES (2) ELIMINAR (2) HOOK (2) INSERTAR (2) INST (2) MULTITABLA (2) POST (2) RECURSIVIDAD (2) SUBCONSULTAS (2) VISTAS (2) XSD (2) cURL (2) punteros (2) AJENA (1) BLOQUEOS (1) Byte (1) CREACION (1) CRM (1) Configuración (1) Controles (1) Datos (1) GOTFOCUS (1) IMAGENES (1) INDICES (1) JS (1) Lenght (1) MEDIA-QUERYS (1) Mingw (1) MonoDeveloped (1) OPTIMISTA (1) PDO (1) PESIMISTA (1) RESPONSIVE (1) SPEAK (1) Scanner (1) Serializacion (1) Streams (1) System (1) TPL (1) TRADUCCIÓN (1) USUARIOS (1) UseSystemPasswordChar (1) app_inventor (1) char (1) examenes (1) libreoffice (1) make (1) redes (1)