Ir para conteúdo

POWERED BY:

Arquivado

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

yourwebmaker

Problema com soma de valores retornados por uma coluna

Recommended Posts

Bom pessoal.... tenho as seguintes tabelas... de um sistema qualquer.... e-commerce.. pro exemplo..

 

CREATE TABLE cliente (  cliente_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,  cliente_nome VARCHAR(255) NULL,  PRIMARY KEY(cliente_id))TYPE=InnoDB;CREATE TABLE pedido (  pedido_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,  cliente_id INTEGER UNSIGNED NOT NULL,  pedido_data DATE NULL,  PRIMARY KEY(pedido_id),  INDEX pedido_FKIndex1(cliente_id))TYPE=InnoDB;CREATE TABLE pedido_produto (  pedido_id INTEGER UNSIGNED NOT NULL,  produto_id INTEGER UNSIGNED NOT NULL,  produto_quantidade INTEGER UNSIGNED NULL,  PRIMARY KEY(pedido_id, produto_id),  INDEX pedido_has_produto_FKIndex1(pedido_id),  INDEX pedido_has_produto_FKIndex2(produto_id))TYPE=InnoDB;CREATE TABLE produto (  produto_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,  produto_descricao VARCHAR(255) NULL,  produto_valor FLOAT NULL,  PRIMARY KEY(produto_id))TYPE=InnoDB;
Depois tenho a seguinte query...

 

select pe.pedido_id as 'ID', pe.pedido_data as 'DATA', c.cliente_nome as 'CLIENTE', sum(pp.produto_quantidade) as 'TOTAL_PRODUTOS', pr.produto_valor as 'TOTAL_VALOR' from pedido pe, cliente c, pedido_produto pp, produto pr where pe.cliente_id = c.cliente_id and pe.pedido_id = pp.pedido_id and pr.produto_id = pp.produto_id and c.cliente_nome like '%Daniel%' group by(pe.pedido_id)
Estou precisando que a 5ª coluna (TOTAL_VALOR)... retorne para mim o valor total do pedido... A quantidade está funcionando... mas o valor total... naõ funciona nem por reza brava.... auhauhauahuaauha

 

 

Espero poder contar com vocês.. http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está querendo que te mostre a soma de todos os pedidos, quando na verdade você está listando uma de cada vez.

Neste caso talvez resolva uma sub-select .

 

Se você executar só a segunda select verá que funciona, mas quando coloca outro campo junto, é necessário um group by ou distinct. O exemplo abaixo deve funcionar

select quantidade,(select sum(quantidade) from tabela where produto = 123) as total	from tabela	where produto = 123

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que eu não soube explicar direito..... http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif

 

auhauahuauaa.... bom lá vai novamente.....

a query está me retornando isso:

Imagem Postada

 

Mas na verdade ela tem que me retornar isso, que é o CORRETO:

Imagem Postada

 

Sendo mais claro...preciso que a quinta coluna me retorne o total de cada Pedido!!!...

 

Ahhhhh... se puderem me ajudar... falando quantos cliente foram retornados.. também seria bom... http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif

 

 

Bom pessoal!!!.... vou tentando aqui....caso eu consiga.. ponho a resposta aqui.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho então que você deverá fazer a leitura das tabelas pedido_produto e produto, agrupando por número de pedido, multiplicando produto_quantidadede por produto_valor e somando isto.sum(produto_quantidade * produto_valor)

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.