Re: [pgbr-geral] REF. MONTAR SELECT #02.

2010-11-01 Por tôpico VisualP Sistemas
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.

2010-11-01 Por tôpico Osvaldo Kussama
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.

2010-11-01 Por tôpico VisualP Sistemas
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