salmaox 0 Denunciar post Postado Agosto 31, 2009 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
Dee 0 Denunciar post Postado Agosto 31, 2009 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
Eclesiastes 2 Denunciar post Postado Setembro 1, 2009 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
salmaox 0 Denunciar post Postado Setembro 2, 2009 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
salmaox 0 Denunciar post Postado Setembro 2, 2009 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