Leonardo Fernandes_51639 0 Denunciar post Postado Novembro 14, 2017 É o seguinte: Imagine que tenho uma tabela produtos.... e os campos quant e unit. Numa compra , o total comprado é sum(produtos.quant*produtos.unit) Só que quero, para esta compra, exibir todos os produtos da compra, com suas quantidades, preços unitários e o percentual que cada produto pesa no preço total da compra... então pensei em fazer assim select quant, unit, 100*(quant*unit)/sum(quant*unit) as perc from produtos porém, a query acima só retorna UM REGISTRO.... parece que a função sum restringe a exibição de todos os registros. alguém pode me ajudar a resolver ????? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Novembro 14, 2017 https://pt.stackoverflow.com/questions/147203/mysql-calcular-a-porcentagem-escolhida Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo Fernandes_51639 0 Denunciar post Postado Novembro 14, 2017 Estamos quase lá... Consegui usar a técnica de criar outro select, dentro do primeiro, para que a sumarização se repita.... Mas não estou conseguindo fazer com que o alias criado na query seja reconhecido na própria query.... 45 minutos atrás, Motta disse: https://pt.stackoverflow.com/questions/147203/mysql-calcular-a-porcentagem-escolhida Estamos quase lá... Consegui usar a técnica de criar outro select, dentro do primeiro, para que a sumarização se repita.... Mas não estou conseguindo fazer com que o alias da sumarização, criado na query, seja reconhecido na própria query, para que ele calcule a porcentagem Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo Fernandes_51639 0 Denunciar post Postado Novembro 14, 2017 select med_1_1.qtemedida, med_1_1.unit, med_1_1.qtemedida*med_1_1.unit as totpar, (select sum(med_1_1.qtemedida*med_1_1.unit) from med_1_1) as soma, 100*totpar/soma as perc from med_1_1 order by perc ao tentar calcular perc, o mysql não reconhece os aliases totpar nem soma para poder calcular 100*totpar/soma. Já tentei chamar totpar de med_1_1.totpar e soma de med_1_1.soma.... mas não funcionou mesmo assim... Diz que totpar e soma são colunas desconhecidas.... Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Novembro 14, 2017 select x.*, 100*totpar/soma as perc from (select med_1_1.qtemedida, med_1_1.unit, med_1_1.qtemedida*med_1_1.unit as totpar, (select sum(med_1_1.qtemedida*med_1_1.unit) from med_1_1) as soma from med_1_1 order by perc) x Creio que resolva Compartilhar este post Link para o post Compartilhar em outros sites