SHWE12 1 Denunciar post Postado Maio 31, 2010 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
borsatti 2 Denunciar post Postado Maio 31, 2010 cara, voce tem que passar para a gente como é a estrutura do seu sistema, eu faria assim.. existem N formas de fazer isso!!! Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Maio 31, 2010 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
SHWE12 1 Denunciar post Postado Maio 31, 2010 Minha tabela está assim: Tabelas vendas e eu quero fazer a somatória do campo cod_produto Compartilhar este post Link para o post Compartilhar em outros sites
borsatti 2 Denunciar post Postado Maio 31, 2010 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
SHWE12 1 Denunciar post Postado Maio 31, 2010 Desculpa a minha ignorancia, mas nao entendi mto bem essa sql. Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Maio 31, 2010 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
SHWE12 1 Denunciar post Postado Maio 31, 2010 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
Victor Cometti 8 Denunciar post Postado Maio 31, 2010 *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