Ir para conteúdo
Fórum Script Brasil

Lucasrs

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Lucasrs

Lucasrs's Achievements

0

Reputação

  1. 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.
×
×
  • Criar Novo...