Ya mira yo cree una vista dinamica asi:

#*********************************************************************************************************************************
CREATE OR REPLACE FUNCTION sp_create_vw_saldos_x_almacen(text, text)
  RETURNS void AS
$BODY$
    DECLARE
    v_fecha text;
    v_create_view text;

BEGIN
    v_fecha=$1;
    raise notice 'fecha %',$1;
    DROP VIEW vw_saldos_x_almacen;
    v_create_view='CREATE VIEW vw_saldos_x_almacen_dia AS
     SELECT DISTINCT da.almacen, da.cod_producto,sal.cod_ubi, m.descripcion
        , sum( CASE
                        WHEN da.ingreso = '''||1||'''::bpchar THEN
                        CASE
                            WHEN m.porc_x_unidad = 0 THEN 1
                            ELSE m.porc_x_unidad
                        END::double precision * da.cantidad +
da.cantidad_porc::double precision
                        ELSE 0::double precision
                    END) AS ingresos
        , sum(CASE
            WHEN da.ingreso = '''||0||'''::bpchar THEN
                        CASE
                            WHEN m.porc_x_unidad = 0 THEN 1
                            ELSE m.porc_x_unidad
                        END::double precision * da.cantidad +
da.cantidad_porc::double precision
                        ELSE 0::double precision
                    END) AS salidas
        , sum(CASE
                        WHEN da.ingreso = '''||1||'''::bpchar THEN
                        CASE
                            WHEN m.porc_x_unidad = 0 THEN 1
                            ELSE m.porc_x_unidad
                        END::double precision * da.cantidad +
da.cantidad_porc::double precision
                        ELSE 0::double precision
                    END) - sum(
                    CASE
                        WHEN da.ingreso = '''||0||'''::bpchar THEN
                        CASE
                            WHEN m.porc_x_unidad = 0 THEN 1
                            ELSE m.porc_x_unidad
                        END::double precision * da.cantidad +
da.cantidad_porc::double precision
                        ELSE 0::double precision
                    END) AS saldos
       FROM detalle_almacen da, mae_prod m,saldos_x_almacen sal
      WHERE trim(m.cod_producto) = trim(da.cod_producto)
        and trim(sal.cod_producto)=trim(m.cod_producto)
        and trim(sal.almacen::text) = trim(m.cod_ubicacion)
        AND da.fecha_operacion >= to_date('''||$1||'''::text,
'''||'YYYY-MM-DD'||'''::text)
        AND da.fecha_operacion <= to_date('''||$2||'''::text,
'''||'YYYY-MM-DD'||'''::text)
      GROUP BY da.cod_producto, da.almacen, m.descripcion,sal.cod_ubi
      ORDER BY da.cod_producto, da.almacen, m.descripcion';
      --raise notice 'vista a crear %',v_create_view;
      execute v_create_view;-------------------->>>>>>>>>>>>>>>>>>>>AQUI ES
DONDE SE REGENERA LA VISTA
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION sp_create_vw_saldos_x_almacen(text, text) OWNER TO lzevallos;
#*********************************************************************************************************************************

El 5 de mayo de 2009 12:57, Juan Jose Rosales Rodriguez <
[email protected]> escribió:

> Buenas Tardes.
>
> Necesito crear una funcion que me realice una consulta a una tabla pasada
> por parametro, y a un campo determinado, empse realizando algo asi. pero me
> queda la duda  el from tiene que ser la tabla que le pase por parametro.
>
>
> CREATE OR REPLACE FUNCTION "mod_catalogo"."cargarpaginas" (varchar,
> varchar, varchar) RETURNS varchar AS
> $body$
> DECLARE
>    tabla varchar;   -- esta es la tabla que quiro consultar
>    campo varchar; --campo
>    valor varchar;     --y criterio
>    cantidad INTEGER := 30;
>
>  BEGIN
>
>   tabla:=$1;
>   campo:=$2;
>   valor:=$3;
>
>    --SELECT * FROM $1; where  campo = valor ; --Como puedo hacer esto?..
>
>
>   RETURN tabla;
>   END;
>   $body$
>  LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
>
>
>
>
> Estudiante:Juan Jose Rosales Rodriguez.
> Arquitecto de sistema Linea Auditoria
>                  ERP-CUBA.
>        Tel: 023 66 792 , 8358741.
>
>
>
>
>
>
>
>
>
>
>
>
> <mailto:[email protected]>
>
> ________________________________
>
> De: [email protected] en nombre de Alvaro Herrera
> Enviado el: mar 05.05.2009 10:55
> Para: Reynier Perez Mira
> CC: [email protected]
> Asunto: Re: [pgsql-es-ayuda] Backup de BD PostgreSQL
>
>
>
> Reynier Perez Mira escribió:
> > Buenos días a todos:
> > Estoy trabajando en un tema de salvas automáticas usando Bacula[1] de un
> sistema de gestión documental Alfresco el cual usa PostgreSQL como gestor.
> He estado trabajando con un desarrollador del software el cual me plantea
> que para realizar un buen backup de la BD es necesario parar el PostgreSQL
> por completo (postgresql stop) lo cual no me queda claro del todo. ¿Alguna
> sugerencia?
>
> Acá una persona detalla el proceso para respaldar bases de datos
> Postgres con Bacula:
>
> http://wiki.bacula.org/doku.php?id=application_specific_backups:postgresql
>
> Observa que contrariamente a lo que el autor de esa página indica, NO es
> más recomendable hacer un respaldo de datos/esquema separado.  Es mejor
> hacer respaldos que combinan ambas cosas (es decir, no uses las opciones
> -a ni -s de pg_dump).
>
> --
> Alvaro Herrera
> http://www.amazon.com/gp/registry/CTMLCN8V17R4
> "I suspect most samba developers are already technically insane...
> Of course, since many of them are Australians, you can't tell." (L.
> Torvalds)
> --
> TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
>               http://archives.postgresql.org/pgsql-es-ayuda
>
>
> --
> TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
>               http://archives.postgresql.org/pgsql-es-ayuda
>



-- 
Luis Zevallos
DBA Administrador de BD
Lobo Sistemas S.A.C
tel: +5154958310833
http://www.lobosistemas.com

Responder a