Em 23-10-2015 14:24, Carlos Antônio Pereira (VidaUTI) escreveu:
>>Me parece que uma CTE (cláusula WITH) resolve facinho, desde que a gente
>>consiga entender seu problema corretamente.
>>Poderia passar um exemplo detalhado (tipo, quem aparece primeiro, qual a
>>ordem que tem que aparecer depois).
Então, a consulta que tenho (de forma que os dependentes acompanhem seus
respectivos titulares) seria esta:
select
cod_associado, seq_fam, nome
order by cod_associado, seq_fam, nome
1 0 JOSE VALDIR RI
1 1 REGINA ELISABE
1 2 DANIEL DE ARAU
1 3 TATIANA DE ARAU
1000 0 ANTONIO ALFREDO
10001 0 LYGIA NUNES GAI
10002 0 ANGELA CORREIA
10003 0 AMANDA CAVALCAN
10004 0 ANA CLAUDIA BAR
10005 0 ANDRE LUIZ LOUR
10005 1 NADIA TORALLES
10005 2 ALICE GOMES TOR
10006 0 ANDRE SOARES AM
10007 0 BARBARA FERREIR
10007 1 NALI MERCEDES F
10007 2 HELENO VAZ DE M
PS.: Titular é definido por seq_fam = 0
O cliente quer todos os titulares em ordem alfabetica e seus dependentes
logo abaixo (ordenados por seq_fam):
10004 0 ANA CLAUDIA BAR
10002 0 ANGELA CORREIA
10003 0 AMANDA CAVALCAN
10005 0 ANDRE LUIZ LOUR
10005 1 NADIA TORALLES
10005 2 ALICE GOMES TOR
10006 0 ANDRE SOARES AM
10007 0 BARBARA FERREIR
10007 1 NALI MERCEDES F
10007 2 HELENO VAZ DE M
1 0 JOSE VALDIR RI
1 1 REGINA ELISABE
1 2 DANIEL DE ARAU
1 3 TATIANA DE ARA
10001 0 LYGIA NUNES GAI
Pensei em resolver com uma view, mas não tenho idéia de como fazer...
Att
Carlos
Veja se isso te resolve :
select cod_associado, seq_fam, nome, 1 as tipo from associados where
seq_fam = 0 UNION ALL select cod_associado, seq_fam, nome, 2 as tipo
from associados where seq_fam <> 0 order by cod_associado, tipo, nome;
Perlo menos no meu teste aqui deu certo.
[]s
Flavio Gurgel
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral