Ir para conteúdo

Arquivado

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

TeixeiraRamos

SUM - Total parcial soma - Juntan os campos SUN campo + campo... não t

Recommended Posts

Prezados,

Minhas páginas estão em ASP com banco de dados em MySql.

Tenho:

SELECT 	
SUM(qso_2010) AS t_2010,
SUM(qso_2011) AS t_2011, 
SUM(qso_2012) AS t_2012, 
SUM(qso_2013) AS t_2013, 
SUM(qso_2014) AS t_2014, 
SUM(qso_2015) AS t_2015,
SUM(qso_2016) AS t_2016,
SUM(qso_2010 + qso_2011 + qso_2012 + qso_2013 + qso_2014 + qso_2015 + qso_2016) t_acumulado
FROM tb_registro_qso; 	


Retito as colunas t_2010...t_2016 soma normalmente

Mas o SUM do t_acumulado não soma nada inclusive essa sintaxe encontrei na internet.

Resultado (observem, por favor, que todos os SUM (qso_2010)...SUN(qso_2016) somam como já citei, mas se juntar eles não funcionam:

| t_2010 | t_2011 | t_2012 | t_2013 | t_2014 | t_2015 | t_2016 | t_acumulado |

| 366 | 1341 | 688 | 614 | 449 | 423 | 44 | (NULL) |

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça sum(t_2010) + sum(t_2011) ...

Deve estar acontecendo o seguinte , valores null nas linhas , por exemplo t_2010 tem valor mas t_2011 não , na soma das linhas separadas não há problema mas nasoma linha a linha sim pois um campo nulo anula a soma toda.

Outra saida seria usar COALESCE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Motta,

Resolvi fazendo assim:

( SUM(IF(tb_registro_qso.qso_2010, qso_2010,0)) +
  SUM(IF(tb_registro_qso.qso_2011, qso_2011,0)) +
  SUM(IF(tb_registro_qso.qso_2012, qso_2012,0)) +
  SUM(IF(tb_registro_qso.qso_2013, qso_2013,0)) +
  SUM(IF(tb_registro_qso.qso_2014, qso_2014,0)) + 
  SUM(IF(tb_registro_qso.qso_2015, qso_2015,0)) + 
  SUM(IF(tb_registro_qso.qso_2016, qso_2016,0))) AS t_acumulado_2010_2016 

Mas vou procurar saber sobre "COALESCE".

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.