Ok, vamos lá... Eis o SQL com os campos que eu preciso. Acrescentei o
order by, que me ajudou a deixar o último registro na frente dos
outros. O que eu preciso é ignorar os "duplicados" (que não são
duplicados, porque os dados são diferentes, mas devem ser ignorados).
Pensei em group by, mas não rola, porque como as tuplas adicionais
para a organização que são criadas pelo cruzamento dos históricos não
tem exatamente os mesmos dados, ele reclama.
select
a.co_ore,
a.co_componente,
a.nu_cnpj_ug_siafi,
b.sg_secretaria,
b.ds_horario_func_secretaria,
b.ds_endereco_secretaria,
b.ds_bairro_secretaria,
b.nu_cep_secretaria,
b.ds_email_secretaria,
b.nu_telefone_secretaria,
b.nu_fax_secretaria,
b.ds_horario_func_coordenacao,
b.ds_endereco_coordenacao,
b.ds_bairro_coordenacao,
b.nu_cep_coordenacao,
b.ds_email_coordenacao,
b.nu_telefone_coordenacao,
b.nu_fax_coordenacao,
c.no_pessoa,
c.nu_telefone,
c.nu_celular,
c.ds_email,
c.ds_funcao,
d.no_pessoa,
d.nu_telefone,
d.nu_celular,
d.ds_email,
d.ds_funcao,
e.no_pessoa,
e.nu_telefone,
e.nu_celular,
e.ds_email,
e.ds_funcao
from
tb_dado_ore as a
inner join
th_ore_uf as b on
a.co_ore=b.co_ore
inner join
th_dado_pessoa as c on
c.co_dado_pessoa = b.co_secretario
inner join
th_dado_pessoa as d on
d.co_dado_pessoa = b.co_coordenador
inner join
th_dado_pessoa as e on
e.co_dado_pessoa = b.co_responsavel_proesf
order by
b.dt_ultima_alteracao desc,
c.dt_ultima_alteracao desc,
d.dt_ultima_alteracao desc,
e.dt_ultima_alteracao desc
Em 12 de fevereiro de 2010 13:19, Fabrízio de Royes Mello
<[email protected]> escreveu:
>
> 2010/2/12 Pablo Sánchez <[email protected]>
>>
>> Tenho a seguinte situação:
>>
>> - tabela com dados de uma Organização com FKs que apontam para a
>> tabela de pessoas
>> - tabela de pessoas com registros históricos, quer dizer, uma mesma
>> pessoa pode ter mais de uma tupla, mas só deve valer a mais recente.
>>
>> Preciso criar uma view que pegue todas as organizações, faça um inner
>> join com a tabela de pessoas, mas pegue apenas o registro mais recente
>> da pessoa.
>>
>> <corte>
>>
>
> Caro Pablo,
>
> Qual a coluna que identifica o que tu chama "a pessoa mais recente"??? É uma
> data, timestamp, um sequencial???
>
> Seria interessante vc enviar a estrutura das tabelas envolvidas para
> podermos lhe ajudar mais...
>
> --
> Fabrízio de Royes Mello
>>> Blog sobre TI: http://fabriziomello.blogspot.com
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
--
=================================
Pablo Santiago Sánchez
Análise e Desenvolvimento de Sistemas Web
Zend Certified Engineer #ZEND006757
[email protected]
(61) 9975-0883
http://www.sansis.com.br
http://www.corephp.com.br
"Quidquid latine dictum sit, altum viditur"
=================================
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral