Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/04/2009, 15:10
pelacuaz
 
Fecha de Ingreso: abril-2009
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Menor tiempo de Ejecucion para una funcion Informix

...continuacion

select sum(cant*preciounitario) into v_matpene from materialesobra
where fechavencimiento like p_anio||'/01/__' and noobra=v_noobra;
select sum(cant*preciounitario) into v_matpfeb from materialesobra
where fechavencimiento like p_anio||'/02/__' and noobra=v_noobra;
select sum(cant) into v_matpmar from materialesobra
where fechavencimiento like p_anio||'/03/__' and noobra=v_noobra;
select sum(cant) into v_matpabr from materialesobra
where fechavencimiento like p_anio||'/04/__' and noobra=v_noobra;
select sum(cant) into v_matpmay from materialesobra
where fechavencimiento like p_anio||'/05/__' and noobra=v_noobra;
select sum(cant) into v_matpjun from materialesobra
where fechavencimiento like p_anio||'/06/__' and noobra=v_noobra;
select sum(cant) into v_matpjul from materialesobra
where fechavencimiento like p_anio||'/07/__' and noobra=v_noobra;
select sum(cant) into v_matpago from materialesobra
where fechavencimiento like p_anio||'/08/__' and noobra=v_noobra;
select sum(cant) into v_matpsep from materialesobra
where fechavencimiento like p_anio||'/09/__' and noobra=v_noobra;
select sum(cant) into v_matpoct from materialesobra
where fechavencimiento like p_anio||'/10/__' and noobra=v_noobra;
select sum(cant) into v_matpnov from materialesobra
where fechavencimiento like p_anio||'/11/__' and noobra=v_noobra;
select sum(cant) into v_matpdic from materialesobra
where fechavencimiento like p_anio||'/12/__' and noobra=v_noobra;

let v_matrene = 0.0;
let v_matrfeb = 0.0;
let v_matrmar = 0.0;
let v_matrabr = 0.0;
let v_matrmay = 0.0;
let v_matrjun = 0.0;
let v_matrjul = 0.0;
let v_matrago = 0.0;
let v_matrsep = 0.0;
let v_matroct = 0.0;
let v_matrnov = 0.0;
let v_matrdic = 0.0;


select sum(programado*preciounitario) into v_manopene from manoobra_obra
where fechavencimiento like p_anio||'/01/__' and noobra=v_noobra;
select sum(programado*preciounitario) into v_manopfeb from manoobra_obra
where fechavencimiento like p_anio||'/02/__' and noobra=v_noobra;
select sum(programado*preciounitario) into v_manopmar from manoobra_obra
where fechavencimiento like p_anio||'/03/__' and noobra=v_noobra;
select sum(programado*preciounitario) into v_manopabr from manoobra_obra
where fechavencimiento like p_anio||'/04/__' and noobra=v_noobra;
select sum(programado*preciounitario) into v_manopmay from manoobra_obra
where fechavencimiento like p_anio||'/05/__' and noobra=v_noobra;
select sum(programado*preciounitario) into v_manopjun from manoobra_obra
where fechavencimiento like p_anio||'/06/__' and noobra=v_noobra;
select sum(programado*preciounitario) into v_manopjul from manoobra_obra
where fechavencimiento like p_anio||'/07/__' and noobra=v_noobra;
select sum(programado*preciounitario) into v_manopago from manoobra_obra
where fechavencimiento like p_anio||'/08/__' and noobra=v_noobra;
select sum(programado*preciounitario) into v_manopsep from manoobra_obra
where fechavencimiento like p_anio||'/09/__' and noobra=v_noobra;
select sum(programado*preciounitario) into v_manopoct from manoobra_obra
where fechavencimiento like p_anio||'/10/__' and noobra=v_noobra;
select sum(programado*preciounitario) into v_manopnov from manoobra_obra
where fechavencimiento like p_anio||'/11/__' and noobra=v_noobra;
select sum(programado*preciounitario) into v_manopdic from manoobra_obra
where fechavencimiento like p_anio||'/12/__' and noobra=v_noobra;

select sum(real*preciounitario) into v_manorene from manoobra_obra
where fechavencimiento like p_anio||'/01/__' and noobra=v_noobra;
select sum(real*preciounitario) into v_manorfeb from manoobra_obra
where fechavencimiento like p_anio||'/02/__' and noobra=v_noobra;
select sum(real*preciounitario) into v_manormar from manoobra_obra
where fechavencimiento like p_anio||'/03/__' and noobra=v_noobra;
select sum(real*preciounitario) into v_manorabr from manoobra_obra
where fechavencimiento like p_anio||'/04/__' and noobra=v_noobra;
select sum(real*preciounitario) into v_manormay from manoobra_obra
where fechavencimiento like p_anio||'/05/__' and noobra=v_noobra;
select sum(real*preciounitario) into v_manorjun from manoobra_obra
where fechavencimiento like p_anio||'/06/__' and noobra=v_noobra;
select sum(real*preciounitario) into v_manorjul from manoobra_obra
where fechavencimiento like p_anio||'/07/__' and noobra=v_noobra;
select sum(real*preciounitario) into v_manorago from manoobra_obra
where fechavencimiento like p_anio||'/08/__' and noobra=v_noobra;
select sum(real*preciounitario) into v_manorsep from manoobra_obra
where fechavencimiento like p_anio||'/09/__' and noobra=v_noobra;
select sum(real*preciounitario) into v_manoroct from manoobra_obra
where fechavencimiento like p_anio||'/10/__' and noobra=v_noobra;
select sum(real*preciounitario) into v_manornov from manoobra_obra
where fechavencimiento like p_anio||'/11/__' and noobra=v_noobra;
select sum(real*preciounitario) into v_manordic from manoobra_obra
where fechavencimiento like p_anio||'/12/__' and noobra=v_noobra;

let v_totpene=v_matpene+v_manopene; let v_totrene=v_matrene+v_manorene;
let v_totpfeb=v_matpfeb+v_manopfeb; let v_totrfeb=v_matrfeb+v_manorfeb;
let v_totpmar=v_matpmar+v_manopmar; let v_totrmar=v_matrmar+v_manormar;
let v_totpabr=v_matpabr+v_manopabr; let v_totrabr=v_matrabr+v_manorabr;
let v_totpmay=v_matpmay+v_manopmay; let v_totrmay=v_matrmay+v_manormay;
let v_totpjun=v_matpjun+v_manopjun; let v_totrjun=v_matrjun+v_manorjun;
let v_totpjul=v_matpjul+v_manopjul; let v_totrjul=v_matrjul+v_manorjul;
let v_totpago=v_matpago+v_manopago; let v_totrago=v_matrago+v_manorago;
let v_totpsep=v_matpsep+v_manopsep; let v_totrsep=v_matrsep+v_manorsep;
let v_totpoct=v_matpoct+v_manopoct; let v_totroct=v_matroct+v_manoroct;
let v_totpnov=v_matpnov+v_manopnov; let v_totrnov=v_matrnov+v_manornov;
let v_totpdic=v_matpdic+v_manopdic; let v_totrdic=v_matrdic+v_manordic;

let v_mat='Materiales';
let v_mo='Mano de obra';
let v_tot='Totales';
let v_matp='P';
let v_matr='R';
let v_mop='P';
let v_mor='R';
let v_totp='P';
let v_totr='R';

return v_nomzona, v_obra, v_anio, v_mat, v_mo, v_tot, v_matp, v_matr, v_mop, v_mor, v_totp, v_totr,
v_matpene, v_matrene, v_matpfeb, v_matrfeb, v_matpmar, v_matrmar, v_matpabr, v_matrabr,
v_matpmay, v_matrmay, v_matpjun, v_matrjun, v_matpjul, v_matrjul, v_matpago, v_matrago,
v_matpsep, v_matrsep, v_matpoct, v_matroct, v_matpnov, v_matrnov, v_matpdic, v_matrdic,
v_manopene, v_manorene, v_manopfeb, v_manorfeb, v_manopmar, v_manormar, v_manopabr, v_manorabr,
v_manopmay, v_manormay, v_manopjun, v_manorjun, v_manopjul, v_manorjul, v_manopago, v_manorago,
v_manopsep, v_manorsep, v_manopoct, v_manoroct, v_manopnov, v_manornov, v_manopdic, v_manordic,
v_totpene, v_totrene, v_totpfeb, v_totrfeb, v_totpmar, v_totrmar, v_totpabr, v_totrabr,
v_totpmay, v_totrmay, v_totpjun, v_totrjun, v_totpjul, v_totrjul, v_totpago, v_totrago,
v_totpsep, v_totrsep, v_totpoct, v_totroct, v_totpnov, v_totrnov, v_totpdic, v_totrdic
with resume;


end foreach;
END PROCEDURE;