Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Function: pa_porcentaje_participacion(character varying, character varying, numeric)
- -- DROP FUNCTION pa_porcentaje_participacion(character varying, character varying, numeric);
- CREATE OR REPLACE FUNCTION pa_porcentaje_participacion(IN idpropiedad character varying, IN idproyecto character varying, IN areaproyecto numeric, OUT porcentaje text)
- RETURNS text AS
- $BODY$
- DECLARE
- rPropiedad record;
- areapropiedad numeric;
- sumaarearelacionada numeric;
- BEGIN
- FOR rPropiedad IN SELECT a.tm_idpropiedad, a.tm_area, a.tm_area_sintechar, a.tm_area_techada, a.ta_clasepropiedad FROM tm_propiedad AS a WHERE a.tm_idproyecto = idproyecto AND a.tm_idpropiedad = idpropiedad AND a.activo = 1 LOOP
- IF rPropiedad.ta_clasepropiedad = '01' THEN
- areapropiedad := rPropiedad.tm_area_techada + (rPropiedad.tm_area_sintechar*0.5);
- ELSE
- areapropiedad := rPropiedad.tm_area;
- END IF;
- SELECT SUM(a.tm_area) INTO sumaarearelacionada FROM tm_propiedad AS a WHERE tm_idpropiedadrelacionada = rPropiedad.tm_idpropiedad AND a.tm_idtipopropiedad <> 'DPT' AND a.activo = 1;
- END LOOP;
- IF sumaarearelacionada > 0 THEN
- areapropiedad = areapropiedad + sumaarearelacionada;
- END IF;
- porcentaje = to_char(areapropiedad/areaproyecto*100,'99999999.99999');
- porcentaje = trim(porcentaje);
- END;
- $BODY$
- LANGUAGE plpgsql VOLATILE
- COST 100;
- ALTER FUNCTION pa_porcentaje_participacion(character varying, character varying, numeric)
- OWNER TO postgres;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement