Guh Costa 0 Denunciar post Postado Outubro 21, 2012 Bom dia Galera. Estou tentando fazer um filtro onde o usuário seleciona as colunas que quer visualizar. Estou populando vários listsbox em AJAX com os dados que estão no banco MySQL. Porém estou encontrando dificuldades na hora de agrupar os dados das colunas (pois algumas existem valores todos iguais, e outras valores diferentes). Exemplo da minha tabela com apenas algumas colunas (a tabela inteira tem mais de 30 colunas): ID TIPO CIDADE ESTADO VALOR 1 Público Campinas SP 30 1 Público São Carlos SP 10 1 Público São José SP 5 1 Público Campinas SP 100 1 Público Santo André SP 50 1 Público Santo André SP 15 Se eu fizer SELECT ID, TIPO, CIDADE, ESTADO, SUM(VALOR) FROM tabela WHERE ID = 1 GROUP BY CIDADE, ESTADO, TIPO, o meu listsbox de estado, por exemplo, fica com SP repetido. Será que devo fazer um select para cada coluna? (Isso dá certo, porém o código fica horrível e o tempo de execução pior ainda). Agradeço! Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 21, 2012 O Group by deve ter a agrupamento listado no select. SELECT ID, TIPO, CIDADE, ESTADO, SUM(VALOR) FROM tabela WHERE ID = 1 GROUP BY ID, CIDADE, ESTADO, TIPO mas resta saber pelo que você quer agrupar e somar, tenha cuidado também pois "santo andré " <> "santo andré" "santo andre" <> "santo andré" e por aí afora. Compartilhar este post Link para o post Compartilhar em outros sites
Guh Costa 0 Denunciar post Postado Outubro 21, 2012 O Group by deve ter a agrupamento listado no select. SELECT ID, TIPO, CIDADE, ESTADO, SUM(VALOR) FROM tabela WHERE ID = 1 GROUP BY ID, CIDADE, ESTADO, TIPO mas resta saber pelo que você quer agrupar e somar, tenha cuidado também pois "santo andré " <> "santo andré" "santo andre" <> "santo andré" e por aí afora. Obrigado pela resposta Motta. Mas basicamente é isso que você escreveu que estou fazendo. Porém as opções EM COMUM do meu listbox ficam repetidas: ID CIDADE UF TIPO 1 Campinas SP Publico 1 São Carlos SP Publico 1 São José SP Publico 1 Santo Andre SP Publico Ou seja, o usuário seleciona a cidade Santo Andre, mas ao selecionar o tipo, terão vários "publicos". Eu gostaria que agrupasse também pelo tipo, independente da cidade. Para isso, eu fiz um select para cada (um agrupando por CIDADE, e outro agrupando por TIPO) e o resultado ficou perfeito. Porém, se tiver que fazer isso para todas colunas, o meu código ficará uma "gambiarra". O que eu queria saber, é se existe uma forma de eu fazer esses GROUP BY independente, sem ter que fazer uma nova query. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 21, 2012 Não sei se entendi bem o problema mas talvez a opção rollup resolva a questão. Talvez você tenha de tratar o retorno de alguma forma, mas terá os diversos totalizadores. Compartilhar este post Link para o post Compartilhar em outros sites
Guh Costa 0 Denunciar post Postado Outubro 21, 2012 Não sei se entendi bem o problema mas talvez a opção rollup resolva a questão. Talvez você tenha de tratar o retorno de alguma forma, mas terá os diversos totalizadores. Obrigado, irei dar uma olhada. Então o meu problema é um pouco complexo mesmo. Eu achei que estava vacilando na query. Abraços Compartilhar este post Link para o post Compartilhar em outros sites