SELECT SUM NAO SOMA
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
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
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...?
Como os dados são armazenados? Qual está sendo o resultado retornado no sum...?
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
verifique no banco de dados como é que esta o tipo do campo
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.
é o que eu sempre uso quando não tenho certeza se minha SQL está correta.
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]
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]
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.
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.
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.
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.
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 |
+-------+------+--------+
Parece que o resultado não está dando certo justamente pelo que eu imaginava...
Reforçando o que o JOSE.NIZ falou: se quer somar TUDO, retire o group by.
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