Ir para conteúdo

POWERED BY:

Arquivado

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

leo_SJCampos

Group by nao funciona

Recommended Posts

Galera me desculpem por postar essa duvida aqui, é que é meui urgente, quem puder me ajudar. tenho o seuinte select:

 

SELECT promotor, SUM(nr_ligacao) as lig, sum(marcacao) as mar, sum(presenca) as pre from producao

where gerente = 'cleide'

group by promotor order by lig desc

 

ele esta funcionando , só que nao da maneira que eu gostaria, exemplo.

 

Era para imprimir, a soma de nºde ligacoes, marcacoes, e a presenca de cada promotor.

 

Ele soma mais como eu coloquei o group by, gostaria que ele me retornasse uma linha de cada promotor e ele ta trazendo a soma em duas linhas exemplo:

 

Maria---45---85---8

Maria---44---5----45

Joao---55---45---56

Joao---87---65----54

 

Queira uma linha de cada promotor, alguem poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual gerenciador você usa? MySQL?

Compartilhar este post


Link para o post
Compartilhar em outros sites

lembre-se que "Joao" é diferente de "Joao " (espaco em branco no final do segundo).

Estude sobre chaves estrangeiras e integridade referencial, pois seria melhor do que colocar os nomes diretamente na tabela.

 

Ex.:

 

Tabela promotores
---------------------------------------------------------------------------
codpromotor		int(11)			  PRIMARY   not null	auto_increment
nome				  varchar(150)
datanascimento   date
ativo				   int(11)
---------------------------------------------------------------------------

Tabela Gerentes
---------------------------------------------------------------------------
codgerente		  int(11)			  PRIMARY   not null	auto_increment
nome				  varchar(150)
datanascimento   date
ativo				   int(11)
---------------------------------------------------------------------------

Tabela de Ligações
---------------------------------------------------------------------------
codligacao		   int(11)			  PRIMARY   not null	auto_increment
codpromotor		int(11)			  FOREIGN   not null
codgerente		  int(11)			  FOREIGN   not null
marcacao			int(11)
presenca			 int(11)
dataligacao		 date
---------------------------------------------------------------------------


SQL
---------------------------------------------------------------------------
SELECT p.nome as promotor, g.nome as gerente, count(l.codligacao) as ligacoes, sum(l.marcacao) as marcacoes, sum(presenca) as presenca
FROM tbl_ligacoes l
 INNER JOIN tbl_gerentes g ON g.codgerente = l.codgerente
 INNER JOIN tbl_promotores p ON p.codpromotor = l.codpromotor
 GROUP BY p.codpromotor
 ORDER BY p.nome ASC, g.nome ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá meus SGBD é MYSQL.

 

nao entendi muito bem Leonardo, como vou usar o having nesse select.

 

SELECT promotor, SUM(nr_ligacao) as lig, sum(marcacao) as mar, sum(presenca) as pre from producao

where gerente = 'cleide'

group by promotor order by lig desc

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido: PHP => MySQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Léo,

tente algo assim:

 

SELECT promotor, 
				SUM(nr_ligacao) as lig,
				SUM(marcacao) as mar,
				SUM(presenca) as pre
	   FROM producao
	 WHERE gerente = 'cleide'
GROUP BY promotor
ORDER BY lig
   HAVING MAX(lig)
	  DESC

Não sei se esta certo, nem testei ainda!

 

Dá uma olhada aqui léo espero que ajude.

http://dev.mysql.com/doc/refman/4.1/pt/pro...with-float.html

 

posta o resultado,

abraços,

léo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com certeza nesse seu banco tem Joao e Maria escrito de tudo que é jeito.Nao ha outra explicacao para este fenomeno, entao uma boa ideia é usar o SOUNDEX enquanto você nao limpa a tabela

 

 

 

SELECT promotor, SUM(nr_ligacao) as lig, sum(marcacao) as mar, sum(presenca) as pre from producao

where gerente = 'cleide'

group by SOUNDEX(promotor) order by lig desc

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.