Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Tenho a consulta abaixo para me retornar os vencimentos de um pedido e o valor de cada parcela, só q o cálculo (Valor da Parcela) não está retornando exato, confira a imagem neste link.
O Total do Pedido é de R$ 85,80
Dividindo por 3 parcelas, deveria ficar 28,60
Só q está retornando 28, como mostra na imagem.
>
SELECT PEDIDO, EMISSAO, TOTAL_PEDIDO, PARCELAS, (TOTAL_PEDIDO DIV PARCELAS) VALOR, DIAS, DATE_FORMAT(VENCIMENTO, "%d/%m/%Y") DATA_VENCIMENTO,
CASE WHEN DATE_FORMAT(VENCIMENTO, "%w") = 0 THEN "DOMINGO"
WHEN DATE_FORMAT(VENCIMENTO, "%w") = 1 THEN "SEGUNDA-FEIRA"
WHEN DATE_FORMAT(VENCIMENTO, "%w") = 2 THEN "TERÇA-FEIRA"
WHEN DATE_FORMAT(VENCIMENTO, "%w") = 3 THEN "QUARTA-FEIRA"
WHEN DATE_FORMAT(VENCIMENTO, "%w") = 4 THEN "QUINTA-FEIRA"
WHEN DATE_FORMAT(VENCIMENTO, "%w") = 5 THEN "SEXTA-FEIRA"
WHEN DATE_FORMAT(VENCIMENTO, "%w") = 6 THEN "SÁBADO"
ELSE "NA"
END AS SEMANA
FROM (
SELECT P.Ped_Codigo PEDIDO, P.Ped_Data EMISSAO, (SELECT SUM(X.Det_ValorUnitario * X.Det_Quantidade) FROM tb_detalhes X WHERE X.Ped_Codigo = P.Ped_Codigo) TOTAL_PEDIDO,
F.FP_NumDias DIAS, (SELECT COUNT(*) FROM tb_formaspagto WHERE Pag_Codigo = P.Pag_Codigo) PARCELAS,
CASE WHEN DATE_FORMAT(DATE_ADD(P.Ped_Data, INTERVAL F.FP_NumDias DAY), "%w") = 0 THEN DATE_ADD(P.Ped_Data, INTERVAL F.FP_NumDias + 1 DAY)
WHEN DATE_FORMAT(DATE_ADD(P.Ped_Data, INTERVAL F.FP_NumDias DAY), "%w") = 6 THEN DATE_ADD(P.Ped_Data, INTERVAL F.FP_NumDias - 1 DAY)
ELSE DATE_ADD(P.Ped_Data, INTERVAL F.FP_NumDias DAY)
END AS VENCIMENTO
FROM tb_pedidos P
INNER JOIN tb_formaspagto F ON (P.Pag_Codigo = F.Pag_Codigo)
) ABC
Como posso corrigir esta consulta para q me retorne o valor correto de cada parcela?
Grato,
Ilano.
Carregando comentários...