Re: ayuda con funcion List

From: Anthony Sotolongo <asotolongo(at)gmail(dot)com>
To: Igniris <ivaldivia(at)xetid(dot)cu>
Cc: POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>, Hellmuth Vargas <hivs77(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Subject: Re: ayuda con funcion List
Date: 2015-10-09 12:48:19
Message-ID: CAASDfF2Vkm5TQYPCg0i+8J=LD-tFc-of16zDVahZmF9TxSKd+g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda pgsql-general

Hola Igniris fijate en la version que tienes de postgresql cuando lo llevas
a la app real pues esa funcion esta disponible desde postgresql 9.0 si mas
no recuerdo. Y el error que tw da es de sintaxis
Saludos
El oct 9, 2015 9:28 AM, "Igniris" <ivaldivia(at)xetid(dot)cu> escribió:

> Muchas gracias Hellmuth probe con tu solucion y en la consulta funciono,
> pero cuando lo pongo en la funcion de la app reaal me da error de sintaxis
> como este:
>
> 'Doctrine_Connection_Pgsql_Exception' with message 'SQLSTATE[42601]: Syntax error: 7
>
> si lo quito y lo pongo como estaba funciona pero con la deficiencia que les comentaba inicialmente, saludos y gracias
>
>
>
> El 07/10/2015 a las 08:46 a. m., Hellmuth Vargas escribió:
>
> Hola Igniris
>
> Pruebalo con string_agg así:
>
>
> SELECT
> string_agg(distinct p.nombre,',') as prod,
> string_agg(distinct fa.forma,',') as forma
> FROM
> public.producto p
> INNER JOIN public.productoformaadquisclugar pfl ON (p.id =
> pfl.idproducto)
> INNER JOIN public.formadeadquisicion fa ON (pfl.idforma = fa.id)
>
> El 7 de octubre de 2015, 9:37 a. m., Igniris<ivaldivia(at)xetid(dot)cu> escribió:
>
>> Buenos dias a todos
>> tengo un problema con la funcion LIST les pongo un ejemplo para ilustralo
>> mejor, tengo las siguientes tablas:
>> CREATE TABLE public.producto (
>> id NUMERIC NOT NULL,
>> nombre TEXT,
>> CONSTRAINT producto_pkey PRIMARY KEY(id)
>> ) WITHOUT OIDS;
>> CREATE TABLE public.formadeadquisicion (
>> id NUMERIC NOT NULL,
>> forma TEXT,
>> CONSTRAINT formadeadquisicion_pkey PRIMARY KEY(id)
>> ) WITHOUT OIDS;
>> CREATE TABLE public.productoformaadquisclugar (
>> idproducto NUMERIC NOT NULL,
>> idforma NUMERIC NOT NULL,
>> idlugar NUMERIC NOT NULL,
>> CONSTRAINT productoformaadquisc_pkey PRIMARY KEY(idproducto, idforma,
>> idlugar)
>> ) WITHOUT OIDS;
>>
>> Ahora tengo una consulta para obtener los producto por su forma de
>> adquisicion donde necesito los nombres de los productos y las formas
>> concatenados, la consulta seria esta:
>> SELECT
>> LIST(p.nombre) as prod,
>> LIST(fa.forma)as forma
>> FROM
>> public.producto p
>> INNER JOIN public.productoformaadquisclugar pfl ON (p.id =
>> pfl.idproducto)
>> INNER JOIN public.formadeadquisicion fa ON (pfl.idforma = fa.id)
>>
>> el resultado de la consulta queda asi:
>>
>>
>> ahora el problema que estoy teniendo es que los usuarios necesitan que si
>> el producto se repite salga una sola vez, en este ejemplo el mango sale 2
>> veces y necesito que salga solo una, la funcion list que estoy usando es
>> esta:
>>
>> CREATE FUNCTION comma_cat(text, text) RETURNS text
>> LANGUAGE sql
>> AS $_$select case
>> WHEN $2 is null or $2 = '' THEN $1
>> WHEN $1 is null or $1 = '' THEN $2
>> ELSE $1 || ', ' || $2
>> END$_$;
>> CREATE AGGREGATE list (
>> BASETYPE = text,
>> SFUNC = comma_cat,
>> STYPE = text,
>> INITCOND = ''
>> );
>>
>> Muchas gracias por su ayuda, saludos
>>
>
>
>
> --
> Cordialmente,
>
> Ing. Hellmuth I. Vargas S.
> Esp. Telemática y Negocios por Internet
> Oracle Database 10g Administrator Certified Associate
> EnterpriseDB Certified PostgreSQL 9.3 Associate
>
>
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Igniris 2015-10-09 13:24:04 Re: ayuda con funcion List
Previous Message Gilberto Castillo 2015-10-07 15:02:26 Re: [MASSMAIL]ayuda con funcion List

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2015-10-09 13:00:38 Re: Drop or alter column under load give ERROR #42804 structure of query does not match function result type:
Previous Message Bill Moran 2015-10-09 11:27:50 Re: Drop or alter column under load give ERROR #42804 structure of query does not match function result type: