Gracias Andres, funciono bien, ahora una ultima consulta es que me quede picado jeje.
1) Hay com oobtener el mismo resultado usando crosstab?? 2) Si quisiera hacer dinamico la funcion es decir que me den hasta cuantos dias se desea revisar la disponibilidad, como podria hacerlo? Saludos Date: Fri, 7 May 2010 17:45:07 -0400 Subject: Re: [pgsql-es-ayuda] Ayuda con Select From: solopostg...@gmail.com To: fs...@hotmail.com CC: pgsql-es-ayuda@postgresql.org 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 <fs...@hotmail.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: fhe...@ip-tel.com.ar > To: fs...@hotmail.com > CC: pgsql-es-ayuda@postgresql.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! _________________________________________________________________ Discover the new Windows Vista http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE