| From: | Steve Crawford <scrawford(at)pinpointresearch(dot)com> |
|---|---|
| To: | Josué Maldonado <josue(at)lamundial(dot)hn>, pgsql general list <pgsql-general(at)postgresql(dot)org> |
| Subject: | Re: Data format and display |
| Date: | 2005-01-20 23:20:31 |
| Message-ID: | 200501201520.31231.scrawford@pinpointresearch.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
> I have a table that contains this raw data:
>
> epr_procode | epr_tipo | epr_mes | epr_valor | zert_title
> -------------+----------+---------+-----------+--------------------
>-- 00C188 | VTA | 200309 | 2116.0000 | Venta
> 00C188 | CTO | 200309 | 1600.0700 | Costo
> 00C188 | VTA | 200311 | 3450.0000 | Venta
> 00C188 | CTO | 200311 | 2687.4200 | Costo
>
> I need to display it this way:
>
> TITULO |200309 |200310 |200311 |200312
> -------------+----------+---------+-----------+--------------------
>-- Venta |2116.0000 |0.0000 |3450.0000 |0.0000
> Costo |1600.0700 |0.0000 |2687.4200 |0.0000
>
>
> Notice I must display the missing 200310 and 200312 empty data
> since users retrieves the info in four months based data set, of
> course that data does not exist since there were no trans in those
> months. Any idea or suggestion to get it done in Postgresql.
Here's one way:
select
zert_title as TITULO,
sum(case when epr_mes=200309 then epr_valor else 0 end) as "200309",
sum(case when epr_mes=200310 then epr_valor else 0 end) as "200310",
sum(case when epr_mes=200311 then epr_valor else 0 end) as "200311",
sum(case when epr_mes=200312 then epr_valor else 0 end) as "200312"
group by 1;
Cheers,
Steve
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Oluwatope Akinniyi | 2005-01-20 23:30:39 | PLPHP |
| Previous Message | Josué Maldonado | 2005-01-20 23:19:21 | Re: Data format and display |