Em 1 de novembro de 2010 08:42, VisualP Sistemas <p....@terra.com.br> escreveu: > Ola Pessoal, > No select abaixo tenho o retorno: > > SELECT > cli.nome, > dep.nome, > dep.parentesco, > pla.valor > FROM (SELECT c.idcli, > c.nome > count(*) as qtde_dependente > FROM cliente c > INNER JOIN dependente d ON d.idcli = c.idcli > GROUP BY c.idcli, > c.nome) AS cli > INNER JOIN dependente dep ON dep.idcli = cli.idcli > INNER JOIN plano pla ON pla.qtde_dependente = > cli.qtde_dependente; > CLIENTE DEPENDENTE VALOR > JUCA Juquinha Filho(a) 9,90 > JUCA Mariazinha Filho(a) 9,90 > MILA TULA Milinha Filho(a) 14,90 > MILA TULA Ritinha Filho(a) 14,90 > MILA TULA Fofinha Filho(a) 14,90 > PAULO Paulinho Filho(a) 4,90 > > Preciso pegar somente primeiro valor, ex: > JUCA Juquinha Filho(a) 9,90 > JUCA Mariazinha Filho(a) > MILA TULA Milinha Filho(a) 14,90 > MILA TULA Ritinha Filho(a) > MILA TULA Fofinha Filho(a) > PAULO Paulinho Filho(a) 4,90 > > Isto porque o valor nao é por dependente e sim por cliente. > > Alguem tem alguma dica ? >
Se você precisar listar todos os dependentes uma possível solução é utilizar a função de agregação array_agg [1], só que neste caso todos os dependentes estariam em um único campo da saida. SELECT ...., array_agg(dependente) ..... GROUP BY cliente, valor Ficaria mais ou menos assim: JUCA {Juquinha Filho(a),Mariazinha Filho(a)} 9,90 MILA TULA {Milinha Filho(a),Ritinha Filho(a),Fofinha Filho(a)} 14,90 PAULO {Paulinho Filho(a)} 4,90 Osvaldo [1] http://www.postgresql.org/docs/current/interactive/functions-aggregate.html _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral