Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

salmaox

[Resolvido] não repetir linha

Recommended Posts

bom dia, estou fazendo uma query que devolve os seguintes campos, "nome","presenca","falta" segue a sql

 

SELECT DISTINCT

CASE

WHEN p.frequencia = 1 THEN '1' END Presenca,

CASE

WHEN p.frequencia = 0 THEN '0' END Falta,

f.nome

FROM presenca_professor p, funcionario f

WHERE p.frequencia in ('0','1')

AND f.idFuncionario = p.idProfessor

AND p.`data` BETWEEN '2009-08-01' AND '2009-08-15'

GROUP BY f.nome,p.frequencia

 

o resultado está vindo assim:

nome presenca falta

prof1 1 null

prof1 null 1

prof2 1 null

prof2 null 1

 

como faço pra colocar todos na mesma linha presenca e falta? sem repetir no nome?

assim:

nome presenca falta

prof1 1 1

prof2 1 1

 

muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

você precisa somar as faltas e a presença, somar a coluna Faltas e a coluna Presença, dae ele vai te trazer uma coisa só =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

A idéia seria algo como:

 

SELECT
	SUM(p.frequencia = 1) Presenca,
	SUM(p.frequencia = 0) Falta,
	f.nome
FROM presenca_professor p, funcionario f
WHERE p.frequencia in (0, 1)
AND f.idFuncionario = p.idProfessor
AND p.`data` BETWEEN '2009-08-01' AND '2009-08-15'
GROUP BY f.nome

Compartilhar este post


Link para o post
Compartilhar em outros sites

A idéia seria algo como:

 

SELECT
	SUM(p.frequencia = 1) Presenca,
	SUM(p.frequencia = 0) Falta,
	f.nome
FROM presenca_professor p, funcionario f
WHERE p.frequencia in (0, 1)
AND f.idFuncionario = p.idProfessor
AND p.`data` BETWEEN '2009-08-01' AND '2009-08-15'
GROUP BY f.nome

Vlw é isso mesmo. usei o sum e resolveu meu problema.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

A idéia seria algo como:

 

SELECT
	SUM(p.frequencia = 1) Presenca,
	SUM(p.frequencia = 0) Falta,
	f.nome
FROM presenca_professor p, funcionario f
WHERE p.frequencia in (0, 1)
AND f.idFuncionario = p.idProfessor
AND p.`data` BETWEEN '2009-08-01' AND '2009-08-15'
GROUP BY f.nome

Vlw é isso mesmo sua consulta está perfeita. resolveu meu problema.

 

muito obrigado.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.