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