2009/2/3 Lucas Paz <lucas...@gmail.com>:
> Olá,
>
> Vamos a duvida:
>
> tenho as tabelas LANCAMENTOS, HISTORICO_LANCAMENTOS e STATUS .
>
> LANCAMENTOS - PK(id_lancamento),nome,data_entrada e etc.
> STATUS - PK(id_status), nome
> HISTORICO_LANCAMENTOS - PK(id_hist_lancamento), FK(id_lancamento),
> FK(id_status), data, usuario e etc...
>
> Acontece o seguinte, na tabela Lancamentos tenho os dados dos contratos, na
> tabela STATUS apenas os status que podem existir de determinado contrato, na
> tabela HISTORICO_LANCAMENTOS tenho os historicos de alteração dos status do
> contrato.
> os status dos contratos são: "PAGO, PENDENTE, FALTA ALGUMA COISA, ENVIADO" e
> etc.
>
>
> Nem tudo são flores...
>
> 1 contrato pode ter mais de 1 status ao mesmo tempo, ou seja um contrato
> pode estar pendente e ser pago... até ai blz...
> O que preciso fazer é um select que pegue os contratos que por exemplo
> tenham os status PAGO e PENDENTE. Preciso retornar o mesmo apenas 1 vez.
> Atualmente controlo isso por flags, a cada mudança no historico eu mudo 1
> flag na tabela LANCAMENTOS. Funciona, mais gostaria de algo mais automatico
> pois se acrescento 1 status tenho que criar novas flags alterar os triggers
> e etc...
>
> alguem tem alguma sugestão?
>


Não sei se entendi corretamente mas um GROUP BY e um MAX(data) não resolveria?
Ou o status que deseja retornar não é necessariamente o mais recente?

Osvaldo
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a