Alvaro, siguiendo tu consejo de generate_series, intenté crear una función , pero .... algo estoy haciendo mal en la sintaxis plpgsql ya que da error: La función es: CREATE OR REPLACE FUNCTION nacer.periodos() RETURNS TABLE (per_fecha timestamp) AS $BODY$ declare lts_minimo timestamp; lts_maximo timestamp; begin select max(periodo), min(periodo) into lts_maximo, lts_minimo from nacer.historicotemp; select * from generate_series(lts_minimo, lts_maximo, '1 month'); end; $BODY$ LANGUAGE plpgsql;
El error es: ERROR: query has no destination for result data HINT: If you want to discard the results of a SELECT, use PERFORM instead. CONTEXT: PL/pgSQL function "periodos" line 6 at SQL statement ********** Error ********** ERROR: query has no destination for result data SQL state: 42601 Hint: If you want to discard the results of a SELECT, use PERFORM instead. Context: PL/pgSQL function "periodos" line 6 at SQL statement Saludos ~~~~~~~~~~~~~~~~ Guillermo Villanueva El 25 de mayo de 2011 23:57, Alvaro Herrera <[email protected]>escribió: > Excerpts from Guillermo Villanueva's message of mié may 25 21:44:13 -0400 > 2011: > > Gracias por sus respuestas nuevamente. > > Alvaro, tiene tantas cosas interesantes postgres que creo que lo que > > mencionás no estaría de mas. > > De todos modos lo resolví haciendo lo que sugería Silvio, tomando el max > y > > el min. Aparentemente ahí si usa el índice porque devuelve los valores > > rapidísimo. > > Una vez que tengo max y min, genero los valores del intervalo desde el > > cliente (PHP) > > ¿Y qué tal generate_series? > > -- > Álvaro Herrera <[email protected]> >
