HOla si vas  utilizar un arreglo debe ser algo como esto:

declare
resultado INTEGER[];
begin
-- Este es el query que quiero que sea una variable, en este caso un arreglo
               SELECT DISTINCT catalog_id into resultado FROM sales
WHERE sellout_date BETWEEN date_sellout - '360 days'::interval AND date_sellout

/*

Lo que quiero es, que el subquery que se repite sea una variable para no tener que repetirlo

    */

        -- Esta la tabla de venta a precio de costo
INSERT INTO sales_cost (retailer_id,catalog_id,sellout_date,sales_avg_360)
        (
SELECT retailer_id,catalog_id, date_sellout,SUM(sellout_cost)/360
           FROM sales
           WHERE retailer_id = retailer
AND catalog_id IN ( select unnest (resultado)-- aqui le hago un unnest al arreglo

           )


saludos

On 05/07/17 13:33, Hibiki wrote:

Y no lo puedes hacer?, prueba a ver declarando un array de integer mas menos …

DECALRE

Result INTEGER[];

SELECT DISTINCT catalog_id INTO *Result* FROM sales

WHERE sellout_date BETWEEN date_sellout - '360 days'::interval AND date_sellout

No lo he probado pero creo que debe dar resultado.

Ing. Nivaildo Polanco Martínez

Director Ejecutivo de ACM-ICPC-UIJ

Email: casa: hib...@nauta.cu <mailto:hib...@nauta.cu>, trabajo: npola...@cuij.edu.cu <mailto:npola...@cuij.edu.cu>

Dpto: (46) 352337

FCT:  (46) 323567

*De:*pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] *En nombre de *oscar arocha
*Enviado el:* miércoles, 5 de julio de 2017 13:09
*Para:* pgsql-es-ayuda@postgresql.org
*Asunto:* [pgsql-es-ayuda] Subquery en variable

Saludos, les adjunto un query a ver si me pueden ayudar con lo siguiente, dentro del SP, tengo un subquery que repito para filtrar un query mas grande, sin embargo uso ese query en otras partes del SP y lo que quiero es no tener que ejecutarlo mas de una vez.

Gracias

--

*Ing. Oscar Arocha*

Linux User: 556027

tlf: +56990301921
twitter: @ArochaOscar


Evento Universidad 2018. Conozca todos los detalles en http://universidad2018.uij.edu.cu

Responder a