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" To: "Comunidade PostgreSQL Brasileira" 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 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
Re: [pgbr-geral] REF. MONTAR SELECT #02.
Em 1 de novembro de 2010 08:42, VisualP Sistemas 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
[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