Boa tarde a todos. Não tenho muita experiencia com mysql e estou tentando criar uma consulta para um relatório de curva ABC de produtos.
Esse é o select que tenho no momento:
"select
produto.id,
produto.descricao,
sum(venda_item.quantidade) as qtde_venda,
round(sum(venda_item.vl_unitario_liquido)/sum(venda_item.quantidade),2) as vr_unitario,
round(sum(venda_item.vl_liquido),2) as vl_total_venda,
round((sum(venda_item.vl_liquido)/(select sum(vl_liquido)from venda_item,venda where venda.id = venda_item.id_venda and venda.status = "FECHADO")),4)*100 as participacao,
from
produto
inner join venda_item on produto.id = venda_item.id_produto
inner join venda on venda_item.id_venda = venda.id
where venda.status = 'FECHADO'
group by id_produto
order by vl_total_venda desc"
O qual me retornar o seguinte resultado:
id
descricao
qtde_venda
vr_unitario
vl_total_venda
participacao
1
PRODUTO TESTE
19
100
1900
62,71
4
PRODUTO TESTE 4
3
66,67
600
19,8
2
PRODUTO TESTE 2
6
6,67
240
7,92
3
PRODUTO TESTE 3
5
6
150
4,95
5
PRODUTO TESTE 5
1
140
140
4,62
O que preciso agora é calcular a participação acumulada, onde consiste em somar a participação de um item com a participação do item anterior até chegar ao valor de 100%, onde o resultador seria:
id
descricao
qtde_venda
vr_unitario
vl_total_venda
participacao
% Acumulado
1
PRODUTO TESTE
19
100
1900
62,71
62,71
4
PRODUTO TESTE 4
3
66,67
600
19,8
82,51
2
PRODUTO TESTE 2
6
6,67
240
7,92
90,43
3
PRODUTO TESTE 3
5
6
150
4,95
95,38
5
PRODUTO TESTE 5
1
140
140
4,62
100
E por fim, informar se o produto faz parte da curva A, B ou C, tendo a referência 70/20/10. Até 70% dos custos do Total Acumulado serão da Classe A; de 70% até 90% serão da Classe B e acima de 90% serão da Classe C, obtendo esse resultado:
id
descricao
qtde_venda
vr_unitario
vl_total_venda
participacao
% Acumulado
ABC
1
PRODUTO TESTE
19
100
1900
62,71
62,71
A
4
PRODUTO TESTE 4
3
66,67
600
19,8
82,5
B
2
PRODUTO TESTE 2
6
6,67
240
7,92
90,43
C
3
PRODUTO TESTE 3
5
6
150
4,95
95,38
C
5
PRODUTO TESTE 5
1
140
140
4,62
100
C
Desde já agradeço a qualquer ajuda!! Abraço a todos.