[pgbr-geral] REF. MONTAR SELECT #02.
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; CLIENTEDEPENDENTEVALOR JUCA JuquinhaFilho(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 PAULOPaulinhoFilho(a)4,90 Preciso pegar somente primeiro valor, ex: JUCA JuquinhaFilho(a) 9,90 JUCA Mariazinha Filho(a) MILA TULA Milinha Filho(a) 14,90 MILA TULA Ritinha Filho(a) MILA TULA Fofinha Filho(a) PAULOPaulinhoFilho(a)4,90 Isto porque o valor nao é por dependente e sim por cliente. Alguem tem alguma dica ? Obrigado. Paulo.] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] REF. MONTAR SELECT #02.
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 {JuquinhaFilho(a),Mariazinha Filho(a)} 9,90 MILA TULA {Milinha Filho(a),Ritinha Filho(a),Fofinha Filho(a)} 14,90 PAULO{PaulinhoFilho(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
Re: [pgbr-geral] REF. MONTAR SELECT #02.
Ola Osvaldo, Neste caso para mim, é melhor controlar pelo codigo PHP. Estou tentando aqui, se nao conseguir entao passarei para plano B. (PHP) Obrigado. - Original Message - From: Osvaldo Kussama osvaldo.kuss...@gmail.com To: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br Sent: Monday, November 01, 2010 11:25 AM Subject: Re: [pgbr-geral] REF. MONTAR SELECT #02. Em 1 de novembro de 2010 08:42, VisualP Sistemas p@terra.com.br escreveu: Ola Pessoal, No select abaixo tenho o retorno: 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 {JuquinhaFilho(a),Mariazinha Filho(a)} 9,90 MILA TULA {Milinha Filho(a),Ritinha Filho(a),Fofinha Filho(a)} 14,90 PAULO{PaulinhoFilho(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