O crosstab pode resolver:

CREATE EXTENSION tablefunc;

SELECT * FROM crosstab($$select descricao_hor, recurso_ag, professor_ag
                                                from horarios
                                                left join agenda on id_hor
= idhora_ag$$,
                                            $$SELECT DISTINCT recurso_ag
FROM horarios$$)
AS t("Descricao_hor" time, "Tablet" text, "Lab" text);

2016-03-03 10:08 GMT-03:00 Stclara <stcl...@gmail.com>:

> Bom dia, pessoal. Tenho uma tabela assim:
> id_hor           descricao_hor
>    1                      07:30
>    2                      08:20
>    3                      09:10
>    4                      10:15
>    5                      11:05
>    6                      11:55
>
> Tablela Agenda - Relacionada com horarios através de idhora_ag:
> id_ag      data_ag       professor_ag        turma_ag recurso_ag
>  idhora_ag
>    1       01/02/2016        Prof A                Turma 1
>  Lab                      1
>    2       01/02/2016        Prof B                Turma 2
>  Tab                      2
>    3       01/02/2016        Prof C                Turma 3
>  Lab                      3
>    4       01/02/2016        Prof D                Turma 4
>  Tab                      4
>    5       01/02/2016        Prof E                Turma 5
>  Lab                      5
>    6       01/02/2016        Prof F                Turma 6
>  Tab                      6
>
>
> Preciso de um resultado que me traga a descrição do horario e o professor
> de acordo com o recurso. Tentei assim:
>
> select descricao_hor, professor_ag as Tablet, '' as Lab
> from horarios
> left join agenda on id_hor = idhora_ag and recurso_ag = 'Tablets'
>
> union
>
> select descricao_hor, '' as Tablet, professor_ag as Lab
> from horarios
> left join agenda on id_hor = idhora_ag and recurso_ag = 'Laboratório'
> order by descricao_hor
>
> O problema é que traz os dados da descricao_hor duas vezes:
>
> Descricao_hor     Tablet            Lab
>      07:20                Stclara
>      07:20                                   Stclara
>
> Precisava que tanto o tablet quanto o lab ficassem na mesma linha.
>
>
> []´s
>
> Stclara.
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Matheus Ricardo Espanhol
---------------------------------------
Dextra Sistemas
http://www.dextra.com.br/postgres
www.pganalytics.io
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a