GARANTIR DESCONTO

Fórum Consulta SQL #265205

13/01/2005

0

Select
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

Rmarcelop

Responder

Posts

13/01/2005

Emerson Nascimento

não, por causa dessa linha (a última linha):

[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.


Responder

Gostei + 0

14/01/2005

Rmarcelop

Mas a consulta está correta ou posso fazer algo para melhorar seu desempenho?
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.


Responder

Gostei + 0

14/01/2005

Emerson Nascimento

para melhorar o desempenho crie indices nas tabelas. de preferência com os campos utilizados nos relacionamentos e também crie índices com campos que você irá utilizar nas suas consultas.

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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar