viernes, 31 de mayo de 2013

PostgreSQL Functions Return Query

-- descargar la vista: http://bseni.blogspot.com/2013/05/comprobante-de-diario-en-adempiere.html

-- select * from rep_auxiliar_centro(0, '130401', '130430');

create or replace function rep_auxiliar_centro(p_centro numeric(10,0), finicial date, ffinal date)
returns table
(
    x_cod_centro varchar,
    x_centro_costo varchar,
    x_cod_cuenta varchar,
    x_cuenta varchar,
    x_debito numeric(10,2),
    x_credito numeric(10,2)
) as $$
begin
    return query
    select
        cd.cod_centro,
        cd.centro_costo,
        cd.cod_cuenta,
        cd.cuenta,
        sum(cd.debito) as debito,
        sum(cd.credito) as credito
    from vw_comprobante_diario cd
    where cd.id_centro = case when p_centro = 0 then cd.id_centro else p_centro end
    and cd.fecha_contable between finicial and ffinal
    group by
        cd.cod_centro,
        cd.centro_costo,
        cd.cod_cuenta,
        cd.cuenta
    order by
        cd.centro_costo,
        cd.cod_cuenta
    limit 1000;
end;
$$ language plpgsql;

No hay comentarios:

Publicar un comentario