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

Responder a