Fórum Consulta SQL #265205
13/01/2005
0
P.NOME as NOME,
P.RG as RG,
P.RG_OE as RG_OE,
E.DATA as DATA,
TE.DESCRICAO as DESCRICAO_TIPO_EXAME,
S.DESCRICAO as DESCRICAO_SETOR,
F.DESCRICAO as DESCRICAO_FUNCAO,
EO.EXAME_RENOVACAO as RENOVACAO,
EO.CONCLUSAO as CONCLUSAO,
EO.EXAME_EXTERNO as EXTERNO
from PACIENTE_EMPRESA PE
left join EXAMES E on (PE.CODIGO_PACIENTE = E.CODIGO_PACIENTE)
left join PACIENTES P on (E.CODIGO_PACIENTE = P.CODIGO)
left join TIPO_EXAME TE on (E.CODIGO_TIPO_EXAME = TE.CODIGO)
left join EXAME_OCUPACIONAL EO on (E.CODIGO = EO.CODIGO_EXAME)
left join SETORES S on (EO.CODIGO_SETOR = S.CODIGO)
left join FUNCAO F on (EO.CODIGO_FUNCAO = F.CODIGO)
where PE.CODIGO_EMPRESA = :ParCodigo
and E.DATA between :ParData1 and ParData2
Gostaria de saber se esta consulta está correta, ou se posso fazer algo para melhorar seu desempenho, e na linha:
left join EXAMES E on (PE.CODIGO_PACIENTE = E.CODIGO_PACIENTE)
não era para aparecer todos os pacientes da tabela PACIENTE_EMPRESA, independente se exitam pacientes na tabela EXAMES?
Rmarcelop
Curtir tópico
+ 0Posts
13/01/2005
Emerson Nascimento
[b:9d434d6b66]and E.DATA between :ParData1 and ParData2[/b:9d434d6b66]
isso quer dizer que só serão exibidos os pacientes que tenham efetuado exames no período informado.
Gostei + 0
14/01/2005
Rmarcelop
Pergunto isto porque num pc 1400 Duron a pesquisa leva em torno de 40 s para ser exibida, na qual me exibe uns 1000 pacientes.
Gostei + 0
14/01/2005
Emerson Nascimento
e frizando mais uma vez: da forma como foi feito não trará todos os pacientes, e sim aqueles que fizeram exames no período informado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)