From: | "I(dot)N(dot)T(dot) - Programación" <dpto(dot)programacion(at)grupo-int(dot)com> |
---|---|
To: | "Javier Chávez B(dot)" <jchavezb(at)gmail(dot)com>, POSTGRESQL - Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Agrupar una consulta con selección del primer elemento |
Date: | 2009-01-29 17:51:47 |
Message-ID: | 4981ECB3.6000101@grupo-int.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
NO! Los siento, no es lo que quiero, en otra respuesta a este post me
explico mejor (creo!)
I.N.T. - Programación escribió:
> Perfecto, ni se me había ocurrido...
>
> Gracias
>
> Javier Chávez B. escribió:
>> On Thu, Jan 29, 2009 at 4:35 PM, "I.N.T. - Programación"
>> <dpto(dot)programacion(at)grupo-int(dot)com> wrote:
>>
>>> Buenas tardes,
>>>
>>> Tengo las 3 tablas:
>>>
>>> CREATE TABLE socios
>>> (
>>> id_socio integer NOT NULL DEFAULT nextval('"socios_seq"'::text),
>>> nombre character varying(250),
>>> dni character varying(250),
>>> etc...
>>>
>>> CREATE TABLE tarjetas_socios
>>> (
>>> id_tarjeta integer NOT NULL DEFAULT 0,
>>> id_socio integer NOT NULL DEFAULT 0
>>> )
>>>
>>> CREATE TABLE tarjetas
>>> (
>>> id_tarjeta integer NOT NULL DEFAULT nextval('"tarjetas_seq"'::text),
>>> id_tienda integer DEFAULT 0,
>>> etc...
>>>
>>> Y tengo la siguiente consulta:
>>>
>>> CREATE OR REPLACE VIEW view_socios AS
>>> SELECT socios.nombre, socios.dni, tarjetas.id_tienda
>>> FROM socios, tarjetas_socios, tarjetas
>>> WHERE socios.id_socio = tarjetas_socios.id_socio AND
>>> tarjetas_socios.id_tarjeta = tarjetas.id_tarjeta
>>> GROUP BY socios.nombre, socios.dni, tarjetas.id_tienda;
>>>
>>> Al ejecutar la vista muestra algo como:
>>>
>>> nombre dni id_tienda
>>> -------------------------------------
>>> LUIS 123456 15
>>> LUIS 123456 11
>>> LUIS 123456 47
>>> ANDRES 987654 12
>>> ANDRES 987654 15
>>> MIGUEL 555555 7
>>>
>>> etc...
>>>
>>> Necesitaría que el resultado de la vista fuera algo como:
>>>
>>> nombre dni id_tienda
>>> -------------------------------------
>>> LUIS 123456 15
>>> ANDRES 987654 12
>>> MIGUEL 555555 7
>>>
>>> etc...
>>>
>>> Es decir, teniendo en cuenta el agrupamiento por los 2 primeros
>>> campos y
>>> CUALQUIER VALOR del tercero (el primero, el último, da igual), pero
>>> que no
>>> duplique al socio. ¿No existe una consulta en PostgreSQL del tipo ...
>>>
>>> CREATE OR REPLACE VIEW view_socios AS
>>> SELECT socios.nombre, socios.dni, tarjetas.id_tienda
>>> FROM socios, tarjetas_socios, tarjetas
>>> WHERE socios.id_socio = tarjetas_socios.id_socio AND
>>> tarjetas_socios.id_tarjeta = tarjetas.id_tarjeta
>>> GROUP BY socios.nombre, socios.dni, first(tarjetas.id_tienda);
>>>
>>> ... (como en access, ¡¡¡lo siento!!!)? ¿Y de alguna otra forma?
>>>
>>> Gracias de antemano por vuestra ayuda
>>>
>>> --
>>> TIP 4: No hagas 'kill -9' a postmaster
>>>
>>>
>>
>> Probaste con un Max ???
>>
>> algo asi :
>>
>> SELECT socios.nombre,
>> socios.dni,
>> Max(tarjetas.id_tienda)
>> FROM socios, tarjetas_socios, tarjetas
>> WHERE socios.id_socio = tarjetas_socios.id_socio AND
>> tarjetas_socios.id_tarjeta = tarjetas.id_tarjeta
>> GROUP BY socios.nombre, socios.dni;
>>
>> Puede ser???
>>
>> Slds.
>>
>> J
>>
>>
>
> --
> TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te
> lo agradecerán
>
From | Date | Subject | |
---|---|---|---|
Next Message | Javier Chávez B. | 2009-01-29 17:55:27 | Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Agrupar una consulta con selección del primer elemento |
Previous Message | I.N.T. - Programación | 2009-01-29 17:50:28 | Re: [pgsql-es-ayuda] Agrupar una consulta con selección del primer elemento |