Ir para conteúdo

Arquivado

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

jpcavalheiro

Calcular porcentagem

Recommended Posts

Estou com dificuldade em calcular a porcentagem...

 

"SELECT item, consumo, custo, round(consumo * custo,2) AS 'Total'
FROM item
order by total DESC;"
Mas agora falta pegar o valor deste 'Total' e saber quanto isso vale no acumulado dele, ....

Compartilhar este post


Link para o post
Compartilhar em outros sites
"SELECT item, consumo, custo, round(consumo / custo,2) AS 'Total'

FROM item
order by total DESC;"

CREIO SER ISTO ...

Compartilhar este post


Link para o post
Compartilhar em outros sites
"SELECT item, consumo, custo, round(consumo / custo,2) AS 'Total'

FROM item
order by total DESC;"

CREIO SER ISTO ...

 

Pois é Motta, tem um problema, esta coluna Total é criada apenas na consulta, no caso da tabela tem apenas as colunas anteriores...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi, só troquei o "vezes" pelo "divide'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi, só troquei o "vezes" pelo "divide'

 

Creio que expressei errado, no caso tem que aparecer estas 4 colunas,==> item, consumo, custo, total (essa total é calculo) daí na sequencia tenho que inserir uma nova coluna, a porcentagem, que é a % da soma de todos os valores de total / pelo total do item.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, eu consegui fazer este aqui em mysql

Porem quando faço a consulta no mysql ele vai tranquilo, agora quando faço pelo php dá erro de sintaxe na primeira linha, me desculpe a minha ignorância mas não consigo compreender, oque devo mudar "set @acumulado :=0;" para ele reconheça

set @acumulado :=0;
SELECT 
item, consumo, custo, 
round((consumo*custo),2) AS total, 
round((SELECT SUM(consumo*custo) FROM item),2) AS totalgeral,
round(((consumo*custo/(SELECT SUM(consumo*custo) from item))*100),2) AS percentual, 
round((@acumulado := @acumulado+ ((consumo*custo/(SELECT SUM(consumo*custo) FROM item))*100)),2) AS acumulado 
FROM item
ORDER BY total DESC;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça assim:

 

SELECT
item
, consumo, custo,
round
((consumo*custo),2) AS total,
round
((SELECT SUM(consumo*custo) FROM item),2) AS totalgeral,
round(((consumo*custo/(SELECT SUM(consumo*custo) from item))*100),2) AS percentual,
round
((@acumulado := @acumulado+ ((consumo*custo/(SELECT SUM(consumo*custo) FROM item))*100)),2) AS acumulado
FROM item, (select @acumulado := 0) a
ORDER BY total DESC
;

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.