Ir para conteúdo

POWERED BY:

Arquivado

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

SHWE12

Calcular Produtos mais Vendidos

Recommended Posts

Boa Tarde.

Gostaria de uma idéia de como fazer um código para calcular os 5 produtos mais vendidos na loja virtual. De acordo com a idéia passada, vou fazer aqui e posto o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vai na tabela onde você armazena os itens vendidos faz um select usando o count() e agrupa por produto ordenando do maior para o menor e limita 5 produtos

 

exemplo:

select count(*) as qtde, p.produto from item_pedido ip inner join produtos p on ip.numproduto = p.numero group by p.produto order by count(*) desc limit 5

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, o victor postou certo o que voce precisa...

 

quando um produto é vendido você nao grava em uma tabela ?

 

então, só usar a sql do victor ali em cima e fazer para a sua tabela!

Compartilhar este post


Link para o post
Compartilhar em outros sites

count() = contador

inner join = relacionamento obrigatório entre tabelas, relacionando a tabela de item_pedido com a tabela produto para pegar o nome do produto q está na tabela produto.

group by p.produto = agrupar por produto

order by count() desc = ordenar por contagem de ocorrencias do maior para o maior.

limit = limite de linhas

 

mostre a estrutura da sua tabela onde são realizadas as vendas onde contenha todos os produtos vendidos e a tabela de produtos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tabela Vendas

 

-- Estrutura da tabela `vendas`

--

 

CREATE TABLE IF NOT EXISTS `vendas` (

`id` smallint(5) NOT NULL auto_increment,

`pedido` varchar(10) NOT NULL,

`cod_produto` varchar(5) NOT NULL,

`cod_cliente` int(5) NOT NULL,

`data_venda` date NOT NULL,

`quantidade` varchar(10) NOT NULL,

`valor` decimal(10,2) NOT NULL,

`frete` decimal(10,2) NOT NULL,

`status` varchar(40) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

 

 

 

Tabela produtos

 

--

-- Estrutura da tabela `produtos`

--

 

CREATE TABLE IF NOT EXISTS `produtos` (

`id` smallint(5) NOT NULL auto_increment,

`cod_produto` varchar(20) NOT NULL default '',

`nome` varchar(150) NOT NULL default '',

`valor` decimal(10,2) NOT NULL default '0.00',

`valor_prazo` decimal(10,2) NOT NULL default '0.00',

`parcelas` mediumint(10) NOT NULL default '0',

`foto` varchar(40) NOT NULL default '',

`peso` decimal(10,2) NOT NULL default '0.00',

`descricao` mediumtext NOT NULL,

`qtde_estoque` mediumint(5) NOT NULL default '0',

`categoria` varchar(5) NOT NULL default '',

`subcategoria` mediumint(5) NOT NULL default '0',

`destaque` varchar(10) NOT NULL default '',

`lancamento` varchar(10) NOT NULL,

`promocao` varchar(10) NOT NULL,

`artista_patrocinado` varchar(10) NOT NULL,

`publicar` varchar(20) NOT NULL default '',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=138 ;

 

--

Compartilhar este post


Link para o post
Compartilhar em outros sites

*essas tabelas suas ñ tão lgl, reveja sua modelagem.

*uma venda pode ter n produtos e você vai ficar repetindo uma porrada de coluna a cada produto.

*cod_produto está com varchar(5) em uma tabela e varchar(20) em outra.

*na tabela vendas você tinha q usar o id do produto e não o cod_produto, visto q sua primary key é id em produtos.

*na tabela produtos você num precisa usar dois identificadores do produto como id e cod_produto.

mas do jeito q tah vamos lah

select count(*) as qtde, p.nome from vendas v inner join produtos p on v.cod_produto = p.cod_produto group by p.nome order by qtde desc limit 5

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.