Ir para conteúdo

POWERED BY:

Arquivado

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

SamBuilder

[Resolvido] SUM(): Somar mais de um campo

Recommended Posts

Olá Pessoal,

 

Como faço pra implementar este código? É possível somar vários campos do meu banco de dados em um único select?

 

$vSQL = "SELECT SUM(valor1), SUM(valor2), SUM(valor3) AS total1, total2, total3 FROM bancodedados";

$vQUERY = mysql_query($vSQL) or die("Falha na execução da consulta.");
$vRE = mysql_fetch_array($vQUERY);

$vTOTAL1 = $vRE['total1'];
$vTOTAL2 = $vRE['total2'];
$vTOTAL3 = $vRE['total3'];

 

Caso não seja possível desta forma, existe outra mais prática?

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim é possível, mas ainda não entendi muito bem o fundamento desse script... :huh:

 

você precisa somar, ou fazer uma lista em um select?

 

se for fazer uma lista em um select use a função while() do PHP.

 

tem como você explicar melhor sua necessidade?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem ué.

SELECT SUM( `<campoX>` + `<campoY>` ) AS `total` FROM `<tabela>`

 

:seta:

 

[root@andrey ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 172
Server version: 5.5.28 MySQL Community Server (GPL)

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create schema imasters;
Query OK, 1 row affected (0.06 sec)

mysql> use imasters;
Database changed

mysql> create temporary table data (
   ->    x integer not null,
   ->    y integer not null
   -> );
Query OK, 0 rows affected (0.18 sec)

mysql> insert into data values( 10, 20 ), ( 30, 40 );
Query OK, 2 rows affected (0.18 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select sum( x + y ) from data;
+--------------+
| sum( x + y ) |
+--------------+
|          100 |
+--------------+
1 row in set (0.05 sec)

mysql> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim é possível, mas ainda não entendi muito bem o fundamento desse script... :huh:

 

você precisa somar, ou fazer uma lista em um select?

 

se for fazer uma lista em um select use a função while() do PHP.

 

tem como você explicar melhor sua necessidade?

 

Vamos lá:

 

Eu tenho na minha tabela três campos/colunas: VLR_NORMAL, VLR_DESCONTO, VLR_RECEBIDO

 

No final do script eu preciso da soma, separadamente, de cada coluna e, cada soma guardada em uma variável diferente: TOTAL_NORMAL, TOTAL_DESCONTO, TOTAL_RECEBIDO.

 

Eu poderia fazer usando o While, porém, meu banco de dados hoje possui 2.000 registros e o processo se tornará lento na medida que o banco for crescendo.

 

Sendo assim eu procuro uma solução mais rápida usando Sum().

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom depois de muitas aplicações feitas em PHP e MySQL percebi que essa questão de se programar direto nas linhas do banco com PHP, e listar os dados do banco para programar é quase que irrelevantes pois se vai programar no MySQL usando PHP, por que não fazer com while()?..

 

depois de muitos teste percebi que o tempo de resposta dos dados são praticamente os mesmos.

 

e eu acredito que a forma mais simples de se somar dados do banco é com while mesmo... :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você fez então está parcialmente certo.

Só mudar o seu select para:

SELECT SUM( `<campoX>` ) AS `totalX`, SUM( `<campoY>` ) AS `totalY` FROM `<tabela>`

 

Valeu Andrey Knupp... RESOLVIDO.

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.