Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Augusto Ramos

Selecionar linhas da tabela somando Valor

Recommended Posts

Preciso selecionar em uma tabela de pedidos, todos os pedido onde a soma do da coluna valor deles seja <= a outro valor por exemplo "500".

 

se tiver como faze-lo trazendo a soma em uma coluna fica melhor, se não depois faço a soma no php...

 

por exemplo:

 

|id|nome|valor|valor somado|
|01|itm1|20.00|20.00       |
|02|itm2|30.00|50.00       |
|03|itm3|60.00|110.00      |
.....
|09|itm9|30.00|493.00      |

 

se alguem puder me ajudar agradeço desde ja....

Compartilhar este post


Link para o post
Compartilhar em outros sites

De que forma?

 

tentei usa-lo aqui mas não deu certo...

 

SELECT	
   sum (ped.valor) as valor_somado
FROM pedido ped

WHERE 
   ped.cod_loja = '5'
AND
   pes.status = 'aprovado_envio'
AND
   ped.valor >= '60'
HAVING 
sum (ped.valor) <= '500'

 

por que ele somente retorna se o SUM da select for <= 500 mas eu quero que ele pare de somar quando chegar a <= 500...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria de agrupar, algo assim :

 

SELECT 
   ped.id, 
   sum (ped.valor) as valor_somado
FROM pedido ped

WHERE 
   ped.cod_loja = '5'
AND
   pes.status = 'aprovado_envio'
AND
   ped.valor >= '60'
GROUP BY 
       ped.id
HAVING 
       sum (ped.valor) <= '500'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que não tenha entendido meu problema...

mas consegui criar uma query que funciona aqui...

 

SELECT
   ped_filtro.cod,  
   ped_filtro.data_pedido,
   ped_filtro.valor_total,
   ped_filtro.valor_reduzido,
   ped_filtro.valor_somado
FROM
 (SELECT
     ped.cod as cod,
     ped.data_pedido as data_pedido,
     ped.valor_total as valor_total,
     ped.valor_total-'2' as valor_reduzido,
     (SELECT 
         SUM(ped2.valor_total-'2')
     FROM pedido ped2
     WHERE 
         ped2.data_pedido <= ped.data_pedido
     AND
         ped2.cod_loja = ped.cod_loja
     AND
         ped2.status = ped.status
     AND
         ped2.ped_valor_total >= '200'
     AND
         ped2.valor_total IS NOT NULL

     ) as valor_somado    
 FROM pedido ped
 WHERE 
     ped.cod_loja = '5'
 AND
     ped.status = 'aprovado_envio'
 AND
     ped.valor_total >= '200'
 AND
     ped.valor_total IS NOT NULL
 ORDER BY
     ped.data_pedido ASC) ped_filtro
WHERE
  ped_filtro.valor_somado <= '3000'

 

mas de qualquer forma esta ai pra quem quiser intender...

não esta dificil, qualquer duvida pode postar aqui!

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.