Somando Datas MySql

create table vendas ( idComissao int auto_increment not null, idPedido int , Parcelas int, Parcela decimal(5,2), ValorParcela decimal(5,2), Vencimento01 date, Vencimento02 date, Vencimento03 date, primary key (idComissao) );

insert into vendas (idPedido,Parcelas,Parcela,ValorParcela,Vencimento01,Vencimento02,Vencimento03) values
(2,3,100.34,‘2016-02-26’,‘2016-03-17’,‘2016-04-12’);

Gente não estou conseguindo obter a soma das datas de Vencimentos.
Imagina que você compra um produto e quer pagar em 3 vezes(Parcelas).
Preciso que soma o (valorParcela*Parcela), de datas especificas.
Por exemplo. Quero a soma de todas as parcelas que vencem de até tanto.
O problema é que, a coluna Parcelas deternina o valor total da soma.
Pode ter compra com uma parcela ou três ou duas.

Será algo assim (podes substituir o CURDATE() pela data pretendida):

SELECT case when vencimento01 <= CURDATE() then ValorParcela else 0 end + case when vencimento02 <= CURDATE() then ValorParcela else 0 end + case when vencimento03 <= CURDATE() then ValorParcela else 0 end
from vendas;

Agora deixo estas questões:

  • O número de parcelas é sempre 3 no máximo?
  • O valor de todas as parcelas é sempre exatamente igual?
  • Como sabes se uma parcela está paga ou não?

pmlm obrigado pela ajuda.
Mas acredito que não me expliquei bem.

Uma compra de 1000,00/3 com 3 vencimentos.
333,33 2016-02-28 2016-04-28 2016-05-28

Daí quero fazer uma pesquisa que me retorne o valor a receber do dia 29-4 até 20-02.

Sabendo que a compra foi feita em 3 vezes e terá mais uma vencimento a entrar. Mas quero uma consulta de data especifica.

Não sei se estou conseguindo ser claro.

O problema é que se linha de baixo tiver uma com 3 parcelas ou com 2 ele conta 2 e não 3, ou ao inverso dependendo da data do último vencimento.

Assim? (Substituindo DATE1 e DATE 2 pelo teu intervalo de datas pretendido)

SELECT case when vencimento01 between DATE1 and DATE2 then ValorParcela else 0 end + case when vencimento02 between DATE1 and DATE2 then ValorParcela else 0 end + case when vencimento03 between DATE1 and DATE2 then ValorParcela else 0 end
from vendas;
1 curtida

Shown de BOLAAAAAAA.
Funcionou perfeito VALEUUU !!!