Busca de informações no Banco de Dados

3 respostas
R

Fala feras

estou tentando buscar umas informações no BD mais quando o java executa minha query estou rescebendo um erro

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

nunca postei problemas de query aqui no furum será que alguém pode ajudar ?

a query e essa aqui

select query1.TOTAL_OPERADORES, query1.VENDA_TOTAL, query1.VENDA_MEDIA, 
sum(query2.VENDA_TOTAL>query1.VENDA_MEDIA) as OPERADOR_MAIOR_MEDIA,  
sum(query2.VENDA_TOTAL<query1.VENDA_MEDIA) as OPERADOR_MENOR_MEDIA, 
sum(query2.VENDA_MEDIA=0) as OPERADOR_SEM_VENDA  
from 

(select  COUNT(DISTINCT(ASSOCIACAO.ID_USUARIO_OPERADOR)) AS TOTAL_OPERADORES , 
SUM(TALAO.ID_STATUS_TALAO=4) +  SUM(TALAO.ID_STATUS_TALAO=5) AS  VENDA_TOTAL, 
(SUM(TALAO.ID_STATUS_TALAO=4) +  SUM(TALAO.ID_STATUS_TALAO=5))
/COUNT(DISTINCT(ASSOCIACAO.ID_USUARIO_OPERADOR)) AS VENDA_MEDIA  
from USUARIO inner join ASSOCIACAO on USUARIO.ID_USUARIO = ASSOCIACAO.ID_USUARIO_OPERADOR  
inner join TALAO on ASSOCIACAO.ID_TALAO = TALAO.ID_TALAO  
where DT_DEVOLUCAO_SUPERVISOR BETWEEN '2010-01-01' and '2010-03-12' 
AND USUARIO.ID_SITUACAO_CADASTRAL='1') query1, 

(select COUNT(DISTINCT(ASSOCIACAO.ID_USUARIO_OPERADOR)) AS TOTAL_OPERADORES ,  
SUM(ASSOCIACAO.ID_USUARIO_OPERADOR=USUARIO.ID_USUARIO) AS RECEBIDOS, SUM(TALAO.ID_STATUS_TALAO=4) +  
SUM(TALAO.ID_STATUS_TALAO=5) AS VENDA_TOTAL,  (SUM(TALAO.ID_STATUS_TALAO=4) +  
SUM(TALAO.ID_STATUS_TALAO=5))/COUNT(DISTINCT(ASSOCIACAO.ID_USUARIO_OPERADOR)) AS VENDA_MEDIA  
from USUARIO inner join ASSOCIACAO on USUARIO.ID_USUARIO = ASSOCIACAO.ID_USUARIO_OPERADOR  
inner join TALAO on ASSOCIACAO.ID_TALAO = TALAO.ID_TALAO where DT_DEVOLUCAO_SUPERVISOR 
BETWEEN '2010-01-01' and '2010-03-12' AND USUARIO.ID_SITUACAO_CADASTRAL='1' 
GROUP BY ASSOCIACAO.ID_USUARIO_OPERADOR) query2

quando executo a segunda e a terceira query até o final dos parenteses “)” executa normal mais quando junto as 3 recebo esse erro que mostrei acima

3 Respostas

R

Vejamos o trecho abaixo:

select query1.TOTAL_OPERADORES, query1.VENDA_TOTAL, query1.VENDA_MEDIA,   
sum(query2.VENDA_TOTAL>query1.VENDA_MEDIA) as OPERADOR_MAIOR_MEDIA,    
sum(query2.VENDA_TOTAL<query1.VENDA_MEDIA) as OPERADOR_MENOR_MEDIA,   
sum(query2.VENDA_MEDIA=0) as OPERADOR_SEM_VENDA    
from

Você está misturando campos normais (query1.TOTAL_OPERADORES, query1.VENDA_TOTAL, query1.VENDA_MEDIA) com valores agregados (SUM(), MIN(), MAX()) sem usar uma cláusula GROUP BY. Inclua uma cláusula GROUP BY para corrigir isto.

R

Eu tentei colocar o GROUP BY mais não funcionou aonde eu deve colocar ?

R

achei a solução depois de query 2 eu acrecentei mais isso group by query1.TOTAL_OPERADORES, query1.VENDA_TOTAL, query1.VENDA_MEDIA e resolveu meu problema

Criado 15 de março de 2010
Ultima resposta 18 de mar. de 2010
Respostas 3
Participantes 2