Ir para conteúdo

POWERED BY:

Arquivado

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

alissong

Agrupar consulta

Recommended Posts

Pessoal,

 

Tenho esse consulta que exibe esses dados:

SELECT empenho.nd, empenho.valor as principal, reforco.valor as reforco, anulacao.valor as anulacao, COALESCE(empenho.valor,0) + COALESCE(reforco.valor,0) - COALESCE(anulacao.valor,0) as saldo FROM empenho LEFT JOIN reforco ON empenho.n_empenho=reforco.n_empenho LEFT JOIN anulacao on empenho.n_empenho=anulacao.n_empenho order by empenho.nd, empenho.n_empenho LIMIT 0, 30 ; 

Dados da Consulta:

nd  principal  reforco  anulacao  saldo  
339014 5000.00 39000.00 10000.00 34000.00 
339014 5000.00 35000.00 15000.00 25000.00 
339014 5000.00 35000.00 16000.00 24000.00 
339014 538.04 185.26 NULL 723.30 
339030 793.55 5880.92 1.66 6672.81 
339030 2055.69 NULL 2055.69 0.00 
339030 210.00 NULL NULL 210.00 
339030 65.00 NULL NULL 65.00 
339030 1190.40 NULL 1190.40 0.00 
339030 1190.40 NULL NULL 1190.40 
339030 75.00 NULL NULL 75.00 
339030 264.98 NULL NULL 264.98 
339030 420.00 NULL NULL 420.00 
339030 84.00 84.00 84.00 84.00 
339030 303.85 NULL NULL 303.85 
339030 3822.50 NULL 3822.50 0.00 
339030 4059.45 NULL NULL 4059.45 
339030 83.80 NULL 83.80 0.00 
339030 43.00 NULL NULL 43.00 
339030 83.80 NULL NULL 83.80 
339030 406.00 NULL NULL 406.00 
339030 894.30 NULL NULL 894.30 
339030 5063.02 NULL NULL 5063.02 
339030 358.20 NULL NULL 358.20 
339030 452.00 NULL NULL 452.00 
339030 1460.00 NULL NULL 1460.00 
339030 30.85 NULL NULL 30.85 
339030 307.00 NULL NULL 307.00 
339030 245.50 NULL NULL 245.50 
339030 160.00 NULL NULL 160.00 

Mas, queria agrupar todos os dados por nd. Contudo não está dando certo. Estou colocando isso:

group by empenho.nd

Veja como esta exibindo a nova consulta agrupada que não esta dando certo.

339014 5000.00 39000.00 10000.00 34000.00 
339030 793.55 5880.92 1.66 6672.81 

Por que correto seria assim:

339014 15000.00 109000.00 41000.00 83000.00
....
....

 

Alguem pode me ajudar nessa consulta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo alissong deu certo sim. O MySQL fez exatamente o que você pediu pra ele fazer.

Se você deseja que ele some os valores não pode somente agrupar. Tem que pedir pra somar também.

 

Veja se isso é oque você deseja:

 

SELECT dados.nd, 
      SUM(dados.principal) AS principal,
      SUM(dados.reforco) AS reforco,
      SUM(dados.saldo) AS saldo 
FROM (SELECT empenho.nd,
            empenho.valor as principal,
            reforco.valor as reforco,
            anulacao.valor as anulacao,
            COALESCE(empenho.valor,0) + COALESCE(reforco.valor,0) - COALESCE(anulacao.valor,0) as saldo
     FROM empenho LEFT JOIN reforco ON empenho.n_empenho=reforco.n_empenho 
                  LEFT JOIN anulacao on empenho.n_empenho=anulacao.n_empenho
     ORDER BY empenho.nd, empenho.n_empenho) AS dados 
GROUP BY dados.nd 

Abraços.

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.