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" <ivaldi...@xetid.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<ivaldi...@xetid.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 > > >