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