From: | Igniris <ivaldivia(at)xetid(dot)cu> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org, alvherre(at)alvh(dot)no-ip(dot)org |
Subject: | ayuda con funcion List |
Date: | 2015-10-07 14:37:58 |
Message-ID: | 56152E46.9020404@xetid.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda pgsql-general |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Gilberto Castillo | 2015-10-07 15:02:26 | Re: [MASSMAIL]ayuda con funcion List |
Previous Message | Hellmuth Vargas | 2015-10-07 13:46:05 | Re: ayuda con funcion List |
From | Date | Subject | |
---|---|---|---|
Next Message | Andrus | 2015-10-07 14:40:14 | Re: How to drop user if objects depend on it |
Previous Message | Melvin Davidson | 2015-10-07 13:57:13 | Re: How to drop user if objects depend on it |