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

Responder a