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

Responder a