Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda: SQL para consulta não retorna todas as linhas


Lucasrs

Pergunta

Bom dia,

Senhores estou tentando fazer um relatório que retorne todos os professores lotados para uma escola e seus movimentos (faltas, licenças ou ausencias), mas o meu SQL esta retornando somente as linhas de professores que possuem movimentações:

Temos as seguintes tabelas: funcionarios (informação dos professores), lotacoes (informações de aonde o professor esta dando aula), movimentos_professores (movimentos de faltas, licenças ou ausencias), escolas (para que retorne o nome da escola).

Inicialmente o SQL era assim, mas retorna somente os professores com movimentações:

SELECT f.nome, f.nro_cpf, l.carga_horaria, mov.dt_inicial, mov.dt_final, mov.motivo_ausencia, mov.justificada,mov.tipo_movimento, mov.quantidade , escola = esc.nome
FROM
dbafuncionarios f,
dba.lotacoes l,
dba.movimento_funcionarios mov,
dba.escolas esc
WHERE
f.i_funcionarios = l.i_funcionarios AND
l.dt_recisao IS NULL AND
l.status_lotacao = 'E' AND
mov.i_funcionarios = f.i_funcionarios AND
l.i_escolas = esc.i_escolas AND
mov.i_escolas = esc.i_escolas AND
mov.dt_inicial > :dt_inicial AND
mov.dt_final < :dt_final AND
mov.i_escolas = :escola

Após tirar algumas duvidas com um amigo ele me informou que era necessário alterar, ai o SQL ficou o seguinte: [mesmo assim não retorna todos os professores, somente os com movimentos, lembrando que eu quero que apareca no relatório o nome do professor seguido abaixo dos movimentos, mas devem aparecer sempre todos os professores.]

SELECT
f.nome, f.nro_cpf, l.carga_horaria, mov.dt_inicial, mov.dt_final, mov.motivo_ausencia, mov.justificada,mov.tipo_movimento, mov.quantidade , escola = esc.nome

FROM
dba.funcionarios f LEFT OUTER JOIN bethadba.movimento_funcionarios mov ON ( f.i_funcionarios = mov.i_funcionarios AND
mov.dt_inicial > dt_inicial AND
mov.dt_final <:dt_final),

dba.lotacoes l,
dba.movimento_funcionarios mov,
dba.escolas esc

WHERE
f.i_funcionarios = l.i_funcionarios AND
l.dt_recisao IS NULL AND
l.status_lotacao = 'E' AND
l.i_escolas = esc.i_escolas

Lembro também que quando aparece :dt_final ou :escola significa que são variaveis jogadas pelo gerador de relatórios da empresa.

Desde já agradeço a ajuda,

Tenham todos um bom dia.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...