andrescarrero/DWH-PL-SQL — pull request #14 by marian09 (2013-03-19 04:04:35+00:00)
Title: Procedimiento Hecho3

create or replace
procedure llenar_hecho3 as

cursor cdimen is
select m.material_id mnu, m.mat_id_viejo mvi, fi.fecha_id finu, ff.fecha_id ffnu, fi.fecha_i fivi, ff.fecha_f ffvi, em.empleado_id emnu, em.cedula emvi from material m
join asignarmaterial am
on am.mtl_codigo= m.mat_id_viejo
join asig_personal ap
on am.fmo_codigo=ap.fmo_codigo and am.svo_codigo=ap.svo_codigo
join empleado em
on em.cedula=ap.infa_cedula
join items i
on i.fmo_codigo= ap.fmo_codigo and i.svo_codigo= ap.svo_codigo
join items_historicos ih
on ih.fmo_codigo= i.fmo_codigo and i.svo_codigo= ih.svo_codigo
join fecha_ini fi
on fi.fecha_i= to_date(ih.his_fecha_inicio,'DD/MM/YY')
join fecha_fin ff
on ff.fecha_f= to_date(ih.his_fecha_fin,'DD/MM/YY')
order BY 1 asc;

cursor materialusado(empleado asig_personal.infa_cedula%TYPE, material sds_materiales_mtl.mtl_codigo%TYPE, fini items_historicos.his_fecha_inicio%TYPE, ffin items_historicos.his_fecha_fin%TYPE) is

select sum(asm.aml_cantidadusada) usada, to_char(ith.his_fecha_fin,'month') Mes, to_char(ith.his_fecha_fin,'yyyy') Año, asp.infa_cedula, asm.mtl_codigo /*, asm.fmo_codigo, asm.svo_codigo*/ from asignarmaterial asm
join asig_personal asp
on asm.svo_codigo= asp.svo_codigo and asm.fmo_codigo= asp.fmo_codigo
join items it
on it.fmo_codigo= asp.fmo_codigo and asm.svo_codigo= it.svo_codigo
join items_historicos ith
on it.fmo_codigo= ith.fmo_codigo and it.svo_codigo= ith.svo_codigo
where ith.etu_codigo=5 and to_char(ith.his_fecha_fin,'month') is not null and to_char(ith.his_fecha_fin,'yyyy') is not null and empleado=asp.infa_cedula and material=asm.mtl_codigo and fini=ith.his_fecha_inicio and ffin=ith.his_fecha_fin
group by to_char(ith.his_fecha_fin,'month'), to_char(ith.his_fecha_fin,'yyyy'), asp.infa_cedula, asm.mtl_codigo, asm.mtl_codigo
order by 3;

cursor trabsobre(empleado asig_personal.infa_cedula%TYPE, material sds_materiales_mtl.mtl_codigo%TYPE, fini items_historicos.his_fecha_inicio%TYPE, ffin items_historicos.his_fecha_fin%TYPE) is

select count(ap.fmo_codigo) codi, am.mtl_codigo,it.his_fecha_inicio,it.his_fecha_fin,ap.infa_cedula from asig_personal ap
join asignarmaterial am
on ap.fmo_codigo=am.fmo_codigo and ap.svo_codigo=am.svo_codigo
join items i
on i.fmo_codigo=ap.fmo_codigo and i.svo_codigo=ap.svo_codigo
join items_historicos it
on it.fmo_codigo=i.fmo_codigo and it.svo_codigo=i.svo_codigo
where ap.apl_personalsugerido