Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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>
>
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().
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>`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... :)
>
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.
sim é possível, mas ainda não entendi muito bem o fundamento desse script... :huh:
tem como você explicar melhor sua necessidade?