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 <[email protected]>:
> 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
> [email protected]
> 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
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral