kania 0 Denunciar post Postado Novembro 3, 2008 Olá pessoal, tenho os eguinte select: SELECT a1.uf, a1.nome, a1.inscricao, count( * ) total FROM ASSOCIADOS3 a1, ASSOCIADOS3 a2 WHERE a2.patrono = a1.inscricao AND a1.tipo = 'AC' AND a2.inscricao <> 'CTTGENESE' AND a2.datacadastro > '2008-10-12' GROUP BY a1.uf, a1.nome, a2.patrono, a1.inscricao ORDER BY total DESC O que preciso fazer é contar quantos itens tem em nome de uma mesmo ASSOCIADO (campo inscricao identifica o login deste associado), ou seja se um associado cadastrou 5 pessoas no campo patrono aparecera 5 vezes o login deste associado,a té ai tudo bem e o comando acima esta fazendo certinho o problema é que um ASSOCIADO pode ter mais de uma login dentro do mesmo CPF/CNPJ. ai eu preciso alem de somar agrupar pelo CPF/CNPJ, até dei um GROUP BY a1.cpfcnpj porem não funionou, associados que tem mais de um cadastros ainda continuam aparecendo como somente um. Alguém tem alguma idéia de como da para fazer isto? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Novembro 4, 2008 depende da estrutura.. pelo que entendi, talvez algo simples como uma subselect resolveria no mysql é possível fazer esse tipo de subselect exemplo: SELECT fieldID ,filed2 , ( SELECT SUM( field1 ) FROM table2 WHERE T.field1 = fieldID ) AS subtotal FROM table1 AS T ORDER BY field3 ASC Compartilhar este post Link para o post Compartilhar em outros sites
kania 0 Denunciar post Postado Novembro 4, 2008 Obrigado pela resposta Hinon, poderia ser mais específico, não entendi como fazer este tipo de sub select Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Novembro 4, 2008 pense num SELECT singular SELECT campo1 ,campo2 ,campo3 FROM tablela1 um dia alguem pensou.. "seria bom se pudesse fazer um SELECT ali na definição de campos" e fizeram.. SELECT campo1 ,campo2 , ( SELECT campoA FROM tabela2 WHERE campoA = 1 ) AS campoA FROM tablela1 Ao invés de puxar o valor de um campo dentro da "tabela1", é puxado um valor dentro de "tabela2", provindo do "campoA" os nomes são fictícios, tente entender o funcionamento apenas. Compartilhar este post Link para o post Compartilhar em outros sites
kania 0 Denunciar post Postado Novembro 4, 2008 Opa Hinon, então veja como ficou meu select, depois de sua ideia dei tbm uma implementadas por aqui. SELECT a1.cpfcnpj, min(a1.uf) uf, min(concat(a1.tipo, ' - ', a1.nome)) nome, min(concat(a1.tipo, ' - ', a1.inscricao)) inscricao, count(*) total FROM ASSOCIADOS3 a1, ASSOCIADOS3 a2 WHERE a2.patrono = a1.inscricao AND a1.tipo in ('AC','LV') AND a2.inscricao <> 'CTTGENESE' AND a2.datacadastro > '2008-10-12' GROUP BY a1.cpfcnpj ORDER BY total desc Compartilhar este post Link para o post Compartilhar em outros sites