-rafael- 1 Denunciar post Postado Setembro 15, 2010 ola a todos, estou com um problema que ta me tirando o sono estou tentando retornar a situação de determinados produtos, mas nao estou conseguindo. segue as tabelas: CREATE TABLE IF NOT EXISTS `produtos` ( `id` int(10) NOT NULL AUTO_INCREMENT, `nome` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; # Dumping data for table teste.produtos: ~4 rows (approximately) /*!40000 ALTER TABLE `produtos` DISABLE KEYS */; REPLACE INTO `produtos` (`id`, `nome`) VALUES (1, 'ARROZ'), (2, 'FEIJAO'), (3, 'MANDIOCA'), (4, 'VINAGRE'); /*!40000 ALTER TABLE `produtos` ENABLE KEYS */; # Dumping structure for table teste.produto_mov DROP TABLE IF EXISTS `produto_mov`; CREATE TABLE IF NOT EXISTS `produto_mov` ( `id` int(10) NOT NULL AUTO_INCREMENT, `idprod` int(10) DEFAULT NULL, `data` date DEFAULT NULL, `tipo_mov` enum('INC','ENC','RET','EXC') DEFAULT NULL, PRIMARY KEY (`id`), KEY `FK_produto_mov_produtos` (`idprod`), CONSTRAINT `FK_produto_mov_produtos` FOREIGN KEY (`idprod`) REFERENCES `produtos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; # Dumping data for table teste.produto_mov: ~2 rows (approximately) /*!40000 ALTER TABLE `produto_mov` DISABLE KEYS */; REPLACE INTO `produto_mov` (`id`, `idprod`, `data`, `tipo_mov`) VALUES (1, 1, '2010-08-13', 'INC'), (2, 1, '2010-08-14', 'ENC'), (3, 1, '2010-09-01', 'RET'), (4, 1, '2010-09-13', 'EXC'), (5, 2, '2010-08-14', 'INC'), (6, 2, '2010-08-29', 'ENC'), (7, 2, '2010-09-14', 'RET'); e a consulta que estou tentando fazer é SELECT produtos.id, produtos.nome, produto_mov.id, produto_mov.idprod, produto_mov.data, produto_mov.tipo_mov FROM produtos INNER JOIN produto_mov ON produto_mov.idprod = produtos.id GROUP BY produtos.id mas ela retorna o primeiro registro da tabela produto_mov, ou seja a primeira data para cada registro de produtos. mas o interessante seria que mostrasse a ultima data. nao sei se fui bem claro, caso esteja faltando alguma coisa, me digam que eu posto. obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 15, 2010 SELECT produtos.id, produtos.nome, produto_mov.id, produto_mov.idprod, produto_mov.data, produto_mov.tipo_mov FROM produtos INNER JOIN produto_mov ON produto_mov.idprod = produtos.id GROUP BY produtos.id ORDER BY produto_mov.data DESC Creio ser isto .... Compartilhar este post Link para o post Compartilhar em outros sites
-rafael- 1 Denunciar post Postado Setembro 15, 2010 ola Motta, não exatamente. tenho os seguintes dados: ai quando faço a consulta SELECT produtos.id, produtos.nome, produto_mov.id, produto_mov.idprod, produto_mov.data, produto_mov.tipo_mov FROM produtos INNER JOIN produto_mov ON produto_mov.idprod = produtos.id GROUP BY produtos.id tenho o resultado mas gostaria que fosse o seguinte esse é o resultado que espero. com sua dica, so trocou a ordenação do resultado final. obrigado pela ajuda! Compartilhar este post Link para o post Compartilhar em outros sites