2008/12/15, Rogério A Bassete <[email protected]>: > Pessoal, > > dados da tabela vigencia: > > Data_Inicial Data_Final > 01/11/2008 03/11/2008 > 04/11/2008 30/11/2008 > 01/12/2008 03/12/2008 > 05/12/2008 31/12/2008 > > > Gostaria de um select que me retorna true caso o intervalo pesquisado > seja: 01/11/2008 a 30/11/2008 e false caso o intervalo seja 01/12/2008 a > 31/12/2008 (falta o dia 04/12/2008). >
Uma idéia é utilizar a função generate_series [1] para duas coisas: 1. gerar todas as datas do intervalo fornecido, 2. criar uma tabela temporária com todas as datas de cada uma das tuplas de sua tabela onde a Data_Inicial seja >= o início de seu intervalo e a Data_Final seja <= ao fim de seu intervalo. Verifique quais datas do intervalo fornecido não estão em sua tabela temporária (por ex. com um LEFT OUTER JOIN e NULL nas datas geradas a partir de sua tabela). Se não retornar nenhuma tupla então "não existem buracos". Osvaldo [1] http://www.postgresql.org/docs/current/interactive/functions-srf.html _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
