Ir para conteúdo
Fórum Script Brasil

Fcesar

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Sobre Fcesar

Fcesar's Achievements

0

Reputação

  1. Denis, Para esse caso é necessário passar o funcionário como parâmetro, eu consegui fazer deu certo. Inclui a cláusula tbl_projeto_atividade.FUNCIONARIO = tbl_projeto_func.FUNCIONARIO, ou seja, irá trazer o somatório somente das atividades de um determinado funcionário no projeto em que ele estiver cadastrado. A necessidade das tabelas é por essa razão, em um projeto podem existir mais de um funcionário e para cada funcionário diversas atividades e diferentes responsáveis, tem mais informações que são listadas, só coloquei as essenciais ai. Porém para a consulta geral (sem passar o funcionário) não está dando certo, existem para um certo projeto 2 registros na tabela tbl_projeto_rt_cliente e quando somo o tempo as atividades (TEMPO_EXECUCAO da tabela tbl_projeto_atividade), o total está vindo em dobro, um para cada registro, que mesmo com distinct soma dobrado. Eu uso um concat para trazer os nomes dos dois RTs que são os esses dois registros mas o total vem errado.
  2. Denis, Seria essa a consulta: SELECT distinct tbl_cliente.NOME, LOGIN, ( SUM( TIME_TO_SEC( TEMPO_EXECUCAO ) ) / 3600 ) as TEMPOTOTAL, Group_Concat(Distinct tbl_rt_cliente.RT Order By tbl_rt_cliente.RT Desc Separator ' / ') as RT, tbl_projeto.NUMERO_PROJETO, tbl_projeto.IDENTIFICADOR, FROM tbl_projeto_func LEFT JOIN tbl_projeto On tbl_projeto_func.PROJETO = tbl_projeto.IDENTIFICADOR LEFT JOIN tbl_projeto_atividade On tbl_projeto_atividade.Projeto = tbl_projeto.IDENTIFICADOR LEFT JOIN tbl_cliente On tbl_projeto.cliente = tbl_cliente.Identificador LEFT JOIN tbl_projeto_rt_cliente On tbl_projeto_rt_cliente.Projeto = tbl_projeto.IDENTIFICADOR LEFT JOIN tbl_rt_cliente On tbl_projeto_rt_cliente.RT = tbl_rt_cliente.IDENTIFICADOR LEFT JOIN tbl_departamento_cliente On tbl_rt_cliente.DEPARTAMENTO = tbl_departamento_cliente.IDENTIFICADOR INNER JOIN tbl_funcionario On tbl_projeto_func.FUNCIONARIO = tbl_funcionario.IDENTIFICADOR AND tbl_funcionario.DESATIVADO = -1 WHERE ENCERRADO <> 3 AND tbl_projeto_func.FUNCIONARIO = 15 GROUP BY tbl_projeto.IDENTIFICADOR ORDER BY NUMERO_PROJETO Existe uma tabela de projetos e para cada projeto podem haver vários funcionários (tbl_projeto_func) e ainda podem conter várias atividades (tbl_projeto_atividade) que também contém o campo FUNCIONARIO. Quero listar todos os projetos que contenham os funcionários na tabela tbl_projeto_func e que some o total de horas de atividades do projeto na tabela projeto_atividade.
  3. Estou utilizando uma consulta e nela desejo trazer a soma de um campo TIME, onde há relacionamento entre as tabelas. Porém o somatório do tempo é trazido em duplicidade mas o restante está correto, como se eu não estivesse utilizando o DISTINCT.. Fiz um teste e quando retiro o somatório do tempo (TEMPO_TOTAL) e coloco apenas para mostrar o campo TEMPO e também tiro o GROUP BY no final, então os registros são trazidos corretamente e a soma dos tempos de cada registro daria o valor que desejo. Alguém pode me dizer por que o SUM com o group by não retorna o somatório correto? Obrigado
  4. Fcesar

    Acesso ao Mysql Lento

    Ok Denis vou verificar. Desde já obrigado.
  5. Tenho uma aplicação funcionando em rede com banco de dados Mysql 5. Quando acesso algumas tabelas na primeira consulta fica um pouco lenta mas a partir da segunda melhora. Alguém pode me dizer como melhorar o acesso na primeira consulta. As tabelas possuem índices e nas consulta estou usando JOIN. Quando o servidor é Linux as consulta ficam mais lentas ainda. Obrigado. Fernando
×
×
  • Criar Novo...