SELECT SUM NAO SOMA

USUARIO.EXCLUIDOS 02/03/2005 22:20:58
#70853
forma 1
Rs.Open "Select sum([Conta])as cont,cli,url,imagem From Tabela group by cli,url,imagem ;",conexao,3,3

forma 2
Rs.Open "Select sum(Conta)as cont,cli,url,imagem From Tabela group by cli,url,imagem ;",conexao,3,3


não da erro nemhum, só não executa a soma .

Onde estou errando ?

Obrigado.
Nilson
THIAGO.CESAR 03/03/2005 07:09:30
#70862
Resposta escolhida
Quanto mais você agrupar, mais individual fica sua consulta. No momento há 3 campos. Verifique se o problema não é esse...
Como os dados são armazenados? Qual está sendo o resultado retornado no sum...?
USUARIO.EXCLUIDOS 03/03/2005 09:36:18
#70896
Sql so soma se for um tipo Curruency, ou seja do tipo Moeda e ou numero se for do tipo String (texto) ele não vai somar.
verifique no banco de dados como é que esta o tipo do campo
JAIPERMEN 03/03/2005 11:19:40
#70928
Outra sugestão é executar esta SQL no seu banco de dados (ACCESS, MySQL, SQLServer) e ver o resultado. Se retornar uma soma, é pq a String SQL está correta. Caso contrário, vc receberá uma msg de erro para verificar o que aconteceu e fazer as reformulações nescessárias.

é o que eu sempre uso quando não tenho certeza se minha SQL está correta.
USUARIO.EXCLUIDOS 03/03/2005 21:43:34
#71038
No MYSQL
tenho dois registros um com o vlr 5 e outro com vlr 8 no campo conta
Sem erros e sem resposta.
mysql> select sum(Conta) as total,url,imagem from Link group by url,imagem;
+-------+------+--------+
| total | url | imagem |
+-------+------+--------+
| 5 | http | foto1 |
| 8 | www | foto2 |
+-------+------+--------+
2 rows in set (0.02 sec)
************************************
Sem Group By resposta satisfatória

mysql> select sum(Conta)as total;
+-------+
| total |
+-------+
| 13 |
+-------+
1 row in set (0.01 sec)


Obs: Campo Conta=int , campos url e imagem = varchar

No access é a mesma coisa.


[S39]
USUARIO.EXCLUIDOS 03/03/2005 23:46:50
#71047
NIL,
Afinal de contas qual é o problema ?
Ambas as respostas estão corretas! Se você está agrupando os dados: será exibido uma somatória para cada grupo de dados. Se você não está agrupamento: todos os registros que compõem o conjunto resultante será considerado um agrupamento único e o resultado será uma única linha.
USUARIO.EXCLUIDOS 04/03/2005 08:22:48
#71058
O primeiro exemplo não esta correto.
Observe que no primeiro exemplo não existe uma resposta com a soma
explicita no campo virtual total.
mas no segundo exemplo onde não utilizo group by recebo a resposta da somatoria no campo total.

No access por exemplo a resposta é 8 .

o que acontece é que se uso algum tipo de agrupamento não recebo a resposta com a soma dos camos.
USUARIO.EXCLUIDOS 04/03/2005 10:29:43
#71078

Existe sim uma resposta com a soma explicita no campo total. A tua massa de dados usada como exemplo que não deixa isto visivel.
Imagina a seguinte massa de dados.
| total | url | imagem |
| 1 | http | foto1 |
| 2 | http | foto1 |
| 2 | http | foto1 |
| 1 | www | foto2 |
| 2 | www | foto2 |
| 2 | www | foto2 |
| 3 | www | foto2 |

O resultado da query:select sum(Conta) as total,url,imagem from Link group by url,imagem
+-------+------+--------+
| total | url | imagem |
+-------+------+--------+
| 5 | http | foto1 |
| 8 | www | foto2 |
+-------+------+--------+
THIAGO.CESAR 04/03/2005 12:54:36
#71124
Parece que o resultado não está dando certo justamente pelo que eu imaginava...
Citação:

Quanto mais você agrupar, mais individual fica sua consulta


Reforçando o que o JOSE.NIZ falou: se quer somar TUDO, retire o group by.
Tópico encerrado , respostas não são mais permitidas