Re: [pgsql-es-ayuda] Vista con pase de parámetros

From: Jorge Gonzalez <jgonzalez(at)itecnologica(dot)com>
To: Anthony Sotolongo <asotolongo(at)gmail(dot)com>
Cc: Virginia <mavir78(at)gmail(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Vista con pase de parámetros
Date: 2016-04-06 15:37:22
Message-ID: CAOKdQyTfhia52vLZVpGvimUgiFC-8YMZEk8rUymoQ-06benmuA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Aquí tienes un ejemplo Virginia
http://gorgusfaucet.byethost6.com/site/funcion-plpgsql-que-retorna-un-setof-record-con-dblink-incluido/

El 6 de abril de 2016, 11:02, Anthony Sotolongo <asotolongo(at)gmail(dot)com>
escribió:

> Hola Virginia, hasta donde se no conozco las vistas con parametros en
> PostgreSQL , pero puedes usar otras opciones como crear una funcion con esa
> query dentro y le pasas a la funcion dicho parametro y luego llamas a esa
> funcion desde PHP
> con un:
> SELECT * FROM tu_funcion(PARAMETRO1 TIPO ANHO-MES)
>
> O te creas la vista sin ese filtro en el WHERE y agregas un atributo(
> to_char(DATE(nt.fecha_vencimiento) ,'yyyy-mm') ) a tu resultado y luego
> desde tu app en PHP la llamas
> SELECT * FROM tu_vista where tu_atributo=PARAMETRO1 TIPO ANHO-MES
>
> Saludos
>
>
>
>
> On 06/04/16 12:03, Virginia wrote:
>
>> Buen día,
>>
>> Quisiera saber si me pueden orientar acerca de vistas con pase de
>> parámetros, éstas funcionan en postgresql? Si es así, cómo se hacen? pueden
>> orientarme?
>> Lo que necesito es pasar ésta consulta de php:
>>
>> SELECT distinct (e.empid), e.empresa, nt.fecha_vencimiento, (SELECT
>> cp2_notas_tareas.no_renovacion FROM cp2_notas_tareas WHERE
>> cp2_notas_tareas.tipo = 861 AND cp2_notas_tareas.tarea_id = (SELECT
>> max(tareas.notareas_id) FROM cp2_notas_tareas tareas where tareas.empid =
>> e.empid AND to_char(DATE(tareas.fecha_vencimiento) ,'yyyy-mm') =
>> 'PARAMETRO1 TIPO ANHO-MES' AND tareas.categorias_nt_id = 8 AND tareas.tipo
>> = 860 )) as renovo, (SELECT mc.descripcion FROM cp2_motivos_categorias mc,
>> cp2_notas_tareas aux WHERE mc.valor = aux.no_renovacion AND aux.tarea_id =
>> (SELECT max(tareas.notareas_id) FROM cp2_notas_tareas tareas where
>> tareas.empid = e.empid AND to_char(DATE(tareas.fecha_vencimiento)
>> ,'yyyy-mm') = 'PARAMETRO1 TIPO ANHO-MES' AND tareas.categorias_nt_id = 8
>> AND tareas.tipo = 860 ) limit 1) as motivo, (SELECT
>> cp2_notas_tareas.descripcion FROM cp2_notas_tareas WHERE
>> cp2_notas_tareas.tipo = 861 AND cp2_notas_tareas.tarea_id = (SELECT
>> max(tareas.notareas_id) FROM cp2_notas_tareas tareas where tareas.empid =
>> e.empid AND to_char(DATE(tareas.fecha_vencimiento) ,'yyyy-mm') =
>> 'PARAMETRO1 TIPO ANHO-MES' AND tareas.categorias_nt_id = 8 AND tareas.tipo
>> = 860 )) as observacion, (SELECT cp2_notas_tareas.notareas_id FROM
>> cp2_notas_tareas WHERE cp2_notas_tareas.tipo = 861 AND
>> cp2_notas_tareas.tarea_id = (SELECT max(tareas.notareas_id) FROM
>> cp2_notas_tareas tareas where tareas.empid = e.empid AND
>> to_char(DATE(tareas.fecha_vencimiento) ,'yyyy-mm') = 'PARAMETRO1 TIPO
>> ANHO-MES' AND tareas.categorias_nt_id = 8 AND tareas.tipo = 860 )) as ntid
>> FROM empresas e INNER JOIN cp2_notas_tareas nt ON (nt.empid = e.empid) LEFT
>> JOIN pagos_empresas pe ON (e.empid = pe.empid) INNER JOIN paquetes pq ON
>> (pe.paqid = pq.paqid) WHERE nt.categorias_nt_id = 8 AND pe.pagid = (SELECT
>> pagid FROM pagos_empresas INNER JOIN paquetes ON (pagos_empresas.paqid =
>> paquetes.paqid) WHERE pagos_empresas.empid = e.empid AND nt.tipo = 860 AND
>> nt.notareas_id = (SELECT max(tareas.notareas_id) FROM cp2_notas_tareas
>> tareas where tareas.empid = e.empid AND
>> to_char(DATE(tareas.fecha_vencimiento) ,'yyyy-mm') = 'PARAMETRO1 TIPO
>> ANHO-MES' AND tareas.categorias_nt_id = 8 AND tareas.tipo = 860 ) ORDER BY
>> pagos_empresas.pagid DESC LIMIT 1) AND to_char(DATE(nt.fecha_vencimiento)
>> ,'yyyy-mm') = 'PARAMETRO1 TIPO ANHO-MES' ORDER BY nt.fecha_vencimiento,
>> e.empresa ASC
>>
>>
>> A una vista pero no sé cómo hacer el pase del PARAMETRO1 TIPO ANHO-MES
>>
>> Gracias por su ayuda.
>>
>
>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>

--
Ing. Jorge A. González V.
Especialista de Base de Datos
Gerencia de Tecnología
Oficina (Máster): +58 (251) 232 16 34
Oficina (Directo): +58 (251) 250 43 99
*Móvil: *+584261534450
Fax: +58 (251) 231 77 64

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Hibiki 2016-04-06 15:48:54 Formato de consulta
Previous Message Anthony Sotolongo 2016-04-06 15:32:25 Re: Vista con pase de parámetros