Re: Ayuda con Select

From: Andrés P(dot)P(dot) <solopostgres(at)gmail(dot)com>
To: Fernando Siguenza <fsigu(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ayuda con Select
Date: 2010-05-07 21:45:07
Message-ID: j2l8a9759491005071445wf241903ey2c13e7717798adbd@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Fernando..

..talvez no entendí bien , de lo que vi creo que esto te serviría...

select larcod as Largo,
count(*) as Total,
sum(CASE when extract(day from now() - fecha) = 0 then 1 else 0 end)
as Dia0,
sum(CASE when extract(day from now() - fecha) = 1 then 1 else 0 end)
as Dia1,
sum(CASE when extract(day from now() - fecha) = 2 then 1 else 0 end)
as Dia2,
sum(CASE when extract(day from now() - fecha) = 3 then 1 else 0 end)
as Dia3,
sum(CASE when extract(day from now() - fecha) = 4 then 1 else 0 end)
as Dia4,
sum(CASE when extract(day from now() - fecha) = 5 then 1 else 0 end)
as Dia5
from tabla_flores
group by larcod order by 1;

prueba y avisa..

Saludos
Andrés.

El 7 de mayo de 2010 17:13, Fernando Siguenza <fsigu(at)hotmail(dot)com> escribió:

> Gracias amigo por la respuesta, estoy justo analizando la funcion, pero no
> logro dar con el resultado deseado, tengp esta consulta y no obtengo lo que
> quiero
>
> select *
> from crosstab(
> 'select bunlarcod,count(buncod),current_date-bunfec as dia
> from bunche
> where bunfec>=current_date-3 and bunfec<=current_date
> group by bunfec,bunlarcod')
> AS bunche(bunlarcod int,dia int,dia1 int)
>
> que me da esto
> bunlarcod dia dia1 20 2 10 3 20 3
> y yo quiero algo como esto.
>
> largo
> Total dia0 dia1 dia2 dia3
> dia4 dia5 10 1 0 0 0 1 0 0 20 5 0 0 1 4 0 0
>
>
>
> Ojala y me puedan ayudar a armar el select.
>
> Saludos.
>
> he probado tambien con un select normay y algunos case, con esta consulta
>
> select bunlarcod,count(buncod)as dispo,
> case when bunfec=current_date-1 then count(buncod) else 0 end as dia0,
> case when bunfec=current_date-2 then count(buncod) else 0 end as dia1,
> case when bunfec=current_date-3 then count(buncod) else 0 end as dia2,
> case when bunfec=current_date-4 then count(buncod) else 0 end as dia3,
> case when bunfec=current_date-5 then count(buncod) else 0 end as dia4,
> case when bunfec=current_date-6 then count(buncod) else 0 end as dia5,
> case when bunfec=current_date-7 then count(buncod) else 0 end as dia6
> from bunche
> group by bunfec,bunlarcod
>
> pero obtengo esto
>
> bunlarcod
> dispo dia0 dia1 dia2 dia3
> dia4 dia5 10 1 0 0 0 1 0 0 20 5 0 0 1 0 0 0
> 20 5 0 0 0 4 0 0
>
>
> qaue tampoco es lo que quiero se me repite el largo cuando deberia salir
> solo un registro del largo 20.
>
> Saludos
>
>
> > From: fhevia(at)ip-tel(dot)com(dot)ar
> > To: fsigu(at)hotmail(dot)com
> > CC: pgsql-es-ayuda(at)postgresql(dot)org
> > Subject: RE: [pgsql-es-ayuda] Ayuda con Select
> > Date: Fri, 7 May 2010 17:58:03 -0300
>
> >
> >
> >
> > > -----Mensaje original-----
> > > De: Fernando Siguenza
> > >
> > > Amigos como estan, en otro foro me ayudaron con la respuesta
> > > de lo que necesito pero solo que esta en sqlserver, ahi veo
> > > que hay una funcion pivot que hace lo que necesito, la
> > > consulta es algo como la siguiente select bunlarcod,Total =
> > > [0]+[1]+[2]+[3]+[4]+[5],dia0 = [0], dia1 = [1], dia2 = [2],
> > > dia3 = [3], dia4 = [4], dia5 = [5] from ( select bunlarcod,
> > > buncod, datediff(dd, bunfec, getdate()) as dias from bunche
> > > where bunfec >= dateadd(dd, -5,
> > > cast(convert(char(8),getdate(), 112) as smalldatetime))
> > > ) T
> > > PIVOT (count(buncod) FOR dias in ([0], [1], [2], [3], [4], [5])) as P
> > >
> > > Ahora mi duda Hay alguna funcion parecida a la pivot en postgre???
> > >
> > > Saludos
> > >
> >
> > Hola. En Postgres es el modulo tablefunc y sus funciones crosstab:
> >
> > http://www.postgresql.org/docs/8.4/interactive/tablefunc.html
> >
> > Slds.
> >
> >
>
> ------------------------------
> Explore the seven wonders of the world Learn more!<http://search.msn.com/results.aspx?q=7+wonders+world&mkt=en-US&form=QBRE>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fernando Siguenza 2010-05-07 21:53:28 RE: Ayuda con Select
Previous Message Fernando Siguenza 2010-05-07 21:13:40 RE: Ayuda con Select