Consulta e soma de valores MYSQL[Resolvido]

6 respostas
rockstorm

Bom dia,
Tenho uma tabela de dias da semana com as horas realizadas em um determinado dia da semana:

Estou fazendo a soma de todos os dias da semana e mostrando o resultado, mas tenho mais um paramentro que é o projeto referente as horas.
Minha query esta assim:

SEndo o projectId o projeto e empid o codigo do usuario.

meu retorno é o seguinte:

________________________
     | total     |  projectId            |
     ---------------------------------- 
     |8          | projeto 1              |
     |10        | projeto 2              |
     |23        | projeto 1              |
     ------------------------------------

Como faço para somar os projetos tipo: projeto 1 = 31 e projeto 2 = 10…já tentei dar um destinct e nao funciona.

grato

6 Respostas

maquiavelbona

Em geral, usa-se sum() com distinct, mas se não funcionou, tentou usar group by?

Até!

rockstorm

Eu tentei com distinct e group by as ele ignora os valores e mostra sem somar os dois registros diferentes.

mueller

não precisa usar distinct, use somente o "group by projectid "
também não precisa usar aqueles sub-selects ali

exemplo:

create table foo(id int, dia1 int, dia2 int); insert into foo values(1,5,7); insert into foo values(1,2,3); insert into foo values(1,1,4); insert into foo values(2,2,3); insert into foo values(2,1,7); select id, sum(dia1)+sum(dia2) as total from foo group by id; +------+-------+ | id | total | +------+-------+ | 1 | 22 | | 2 | 13 | +------+-------+ 2 rows in set (0,00 sec)

A

Use o GROUP BY.

SELECT SUM(camp1), SUM(camp2), nomeprojeto FROM suaTabela
GROUP BY nomeprojeto;
Todos os campos que não estão em funções do grupo lista no group by

maquiavelbona

Tens plena convicção que os “projectId” são iguais e não identicos?
Não tens uma chave numérica para comparar se realmente são iguais?

Até!

rockstorm

Funcionou pessoal, muito obrigado…

Criado 10 de julho de 2007
Ultima resposta 10 de jul. de 2007
Respostas 6
Participantes 4