Ir para conteúdo

POWERED BY:

Arquivado

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

KUROL3

somar SUM()

Recommended Posts

Olá estou com um problemas não quero usar o php para somar mas no select............

 

tenho esses campos no banco

 

pedidos

 

id_peido valor frete

 

1-------50.00-------10.00

1-------48.00-------10.00

1-------30.00-------10.00

5-------90.00-------20.00

5-------95.00-------20.00

15------900.00-----50.00

 

eu queria que o select somasse todos os valores da coluna valor... ou seja teria que dar 1213 e somasse o frete por grupo de id_pedido teria que dar 80 e o total geral

 

1293

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi.

agrupando pelo pedido, você consegue fazer a soma de cada coluna e também o total destas colunas. até aí normal, basta fazer o Group By. Agora como você quer o total geral também na mesma consulta, você pode tentar utilizar o modificador WITH ROLLUP.

eis um exemplo:

 

SELECT id_pedido, SUM(valor) as totalvalor, SUM(frete) as totalfrete,

(SUM(valor) + SUM(frete)) as totalgeral

FROM pedidos

GROUP BY id_pedido WITH ROLLUP

o resultado seria o seguinte (de acordo com o que está na tabela que você passou acima):

id_pedido	totalvalor	 totalfrete	  totalgeral
1				128			 30				158
5				185			 40				225
15			   900			50				950
NULL		   1213		   120			  1333

repare que utiizando o rollup o mysql vai adicionar uma linha ao final do resultado com o totalizador de cada campo utilizado no somatório (SUM).

 

http://dev.mysql.com/doc/refman/5.0/en/gro...-modifiers.html

 

seria isto o que você quer?

 

edit: só não lembro a partir de qual versão do mysql este modificador está disponível.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quase.... rsrsr até ai eu havia conseguido ....

 

o que não pode é somar os fretes por grupo de pedido...

 

tipo

 

id_peido se tiver 5 itens o frete para esse pedido é um so nao a soma dos 5 itens.....

 

entendeu ou compliquei?

 

Abraco valeu pela ajuda

Marco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quase.... rsrsr até ai eu havia conseguido ....

 

o que não pode é somar os fretes por grupo de pedido...

 

tipo

 

id_peido se tiver 5 itens o frete para esse pedido é um so nao a soma dos 5 itens.....

 

entendeu ou compliquei?

 

Abraco valeu pela ajuda

Marco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quase.... rsrsr até ai eu havia conseguido ....

 

o que não pode é somar os fretes por grupo de pedido...

 

tipo

 

id_peido se tiver 5 itens o frete para esse pedido é um so nao a soma dos 5 itens.....

 

entendeu ou compliquei?

 

Abraco valeu pela ajuda

Marco

Compartilhar este post


Link para o post
Compartilhar em outros sites

hummmm... entendi... :)

 

vou dar mais uma pesquisada e testes...

 

mas vamos aguardar também algum outro camarada responder.

 

se você conseguir... posta ae p/ galera como fez. :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bacalhais a parte....

 

Essa tabela ta precisando de uma normalizadinha, pois o frete deveria ter uma tabela soh pra ele, mas nada q vai quebrar as pernas do seu sistema....

 

Alem disso um select simples resolve seu problema amiguinho (assumindo q o valor do frete seja um soh para todos os produtos dentro pedido, como você mostrou no exemplio)....

 

 

Select

id_pedido, sum(valor) as total_em_produtos, max(frete) as valor_frete , ( sum(valor)+max(frete) )as total_a_pagar

from tabela

GROUP BY id_pedido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeuuu matou a pau...

 

cho ve se entendi o MAX() pega o maior valor de cada group por id_pedido ... como todos os produtos do id_pedido é o mesmo valor ele pega sempre um... ai tanto faz usar o MAX() ou MIN()......

 

BLZZ>...

 

Agora você disse para joga o frete em outra tabela.... é vantajoso issu

 

tem o pedido em uma tabela o frete relacionado ao pedido em outra tabela.. e os dois relacionado ao cliente.?

 

abaixo o site que estou mexendo.. rsrs

http://www.casamusical.com.br

 

Abraço

Marco

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.