hcardoso 0 Denunciar post Postado Outubro 16, 2007 boasimaginem que tenho uma tabela com o nome de pessoas e o nome da cidade onde vivem:id - nome - cidade-------------------------1 - hugo - porto2 - telmo - leiria3 - rui - lisboa4 - joão - porto5 - joel - aveiro6 - pedro - leiriaeu preciso de uma consulta à tabela que me devolva apenas os registos das pessoas que vivem em cidades onde vive mais alguem...neste caso devolveria:1 - hugo - porto4 - joão - porto2 - telmo - leiria6 - pedro - leiriaa questão é que isto tem que ser feito sem ser necessário fornecer o nome das cidades no SQL. a consulta tem que fazer a analise sozinha.alguem me ode ajudar?desde já agradeço a ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Outubro 16, 2007 Ultilize HAVING na sua consulta... SELECT COUNT(*), nome FROM TABLE GROUP BY nome HAVING COUNT(*) > 1 ORDER BY 1 ASC Faça o teste!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
hcardoso 0 Denunciar post Postado Outubro 17, 2007 bom diadesde já obrigado pela ajuda Wagner.utilizei o SQL que elaboras-te e não me foi devolvido nenhum registo.depois agrupei por cidade e foi-me devolvido o primeiro registo de cada cidade pretendida:codigo:SELECT COUNT(*), cidade, id, nomeFROM xtesteGROUP BY cidadeHAVING COUNT(*) > 1ORDER BY 1 ASCresultado:1 - hugo - porto2 - telmo - leiriaou seja, devolveu-me as cidades certas... só falta devolver-me o resto das pessoas dessas cidades Compartilhar este post Link para o post Compartilhar em outros sites
killer_ 0 Denunciar post Postado Outubro 17, 2007 se você deseja que no seu resultado se repita os nomes das cidades você deve retirar so seu select a clausula GROUP BY cidade utilizando essa você apenas terá um resultado para cada cidade Compartilhar este post Link para o post Compartilhar em outros sites
hcardoso 0 Denunciar post Postado Outubro 17, 2007 boas se eu retirar o GROUP BY cidade recebo o erro: Erro na query: SELECT COUNT(cidade), cidade, id, nome FROM xteste HAVING COUNT(cidade) > 1 ORDER BY cidade ASC.Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause como posso dar a volta a isto? desde já obrigado pela ajuda Compartilhar este post Link para o post Compartilhar em outros sites
killer_ 0 Denunciar post Postado Outubro 17, 2007 boas se eu retirar o GROUP BY cidade recebo o erro: Erro na query: SELECT COUNT(cidade), cidade, id, nome FROM xteste HAVING COUNT(cidade) > 1 ORDER BY cidade ASC.Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause como posso dar a volta a isto? desde já obrigado pela ajuda hehehe...peço desculpas falha minhacomo você esta realizando uma conta é necessário que você agrupe, ou seja, use o ORDER BY porem usando outro campo...exemplo nome o campo informado no ORDER BY é o campo que será contado mas parece que você deseja obter a quantidade de vezes que a cidade se repte e ainda mostrar quem possui essa cidade se for isso, é um trabalho para os especialistas ae no mysql peço desculpas pelo transtorno....eu só queria ajudar.... ^.^ Compartilhar este post Link para o post Compartilhar em outros sites
hcardoso 0 Denunciar post Postado Outubro 17, 2007 boaseu não pretendo contar registos nenhuns.apenas preciso de uma consulta que me devolva os registos em que há cidades que se repetem noutros registosbrigado pela ajuda Compartilhar este post Link para o post Compartilhar em outros sites