Em 27 de fevereiro de 2014 12:07, Osvaldo Kussama <[email protected] > escreveu:
> Em 27/02/14, Carlos Antônio Pereira > (VidaUTI)<[email protected]> escreveu: > > > > Amigão, você deve usuar o JOIN. > > De uma lida no site http://www.w3schools.com/sql/sql_join.asp para > > saber a respeito. > > > > Vou tentar te ajudar com o SQL abaixo: > > > > SELECT triagem.sintomatologia, triagem.orientacao, cid10.diagnostico, > > cid10.cid > > INTO record1 > > FROM triagem > > INNER JOIN cid10 ON triagem.triagemid = cid10.triagemid AND > > cid10.servico = p_servico > > WHERE triagem.servico = p_servico; > > > > > > Vou explicar o contexto do negócio e o sistema: > > > > É uma empresa de emergência médica móvel. O sistema está sendo > desenvolvido > > > > em EXTJS. > > > > Então, para um serviço temos: > > Tabela para registro dos serviços: classificacao, nome do paciente, > idade, > > endereco... > > > > A classificação do serviço pode ser: Remoção ou Atendimento > pré-hospitalar. > > Sendo remoção, teria o registro pertinente à remoção em uma tabela: > > dtagenda, destino1, destino2, etc... > > > > Ainda numa outra tabela observacao, tenho: > > tipo e descricao da observaçao, mais a fk do servico: > > > > num_servico, tipo, descricao > > > > Nesta tabela mantenho os registros de tipo text: > > > > Exemplo > > num_servico, tipo, descricao > > 100 1 ORIENTACAO AO PACIENTE > > 100 2 QUADRO CLINICO DO PACIENTE > > 100 3 SINTOMATOLOGIA DO PACIENTE > > 100 4 OBSERVACOES SOBRE O SERVICO > > 100 5 OBSERVACOES SOBRE A REMOCAO > > > > > > Quando eu fizer uma seleção para mostrar o registro, faira assim assim: > > > > SELECT * FROM servico WHERE num_servico = 100; > > SELECT * FROM servico_remocao WHERE num_servico = 100; > > SELECT descricao as orientacao FROM observacao WHERE num_servico = 100 > AND > > > > tipo = 1; > > SELECT descricao as quadro_clinico FROM observacao WHERE num_servico = > 100 > > > > AND tipo = 2; > > SELECT descricao as obs_servico FROM observacao WHERE num_servico = 100 > AND > > > > tipo = 4; > > SELECT descricao as obs_remocao FROM observacao WHERE num_servico = 100 > AND > > > > tipo = 5; > > > > Lembrando que: > > nem todo serviço tem registro de remoção, nem todo serviço tem registro > de > > orientacao, quadro_clinico, obs_servico, obs_remocao. > > > > Então, no lugar de enviar varias consultas de um cliente para o servidor, > > pensei em buscar tudo com uma funcao. > > > > > Então, como já foi dito antes, estude os diversos tipos de JOIN que, > pela sua explicação, me parece que você desconhece, e faça uma única > consulta. > > http://www.postgresql.org/docs/current/interactive/tutorial-join.html > > Osvaldo > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > boa Tarde cara evite o top posting, veja se abaixo te serve.. acho que entendi o que vc quer, leia sobre array_to_string[1] SELECT array_to_string( array(Select distinct (descricao) From COMANDAS observacao WHERE num_servico = 100 AND tipo = 5), ';') neste caso viria todos os seus serviços em uma unica linha separados pelo caracter (;), que vc pode alterar.. veja se te serve, e [1] http://www.postgresql.org/docs/9.3/static/functions-array.html -- Douglas Fabiano Specht
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
