[Pgsql-ayuda] años bisiestos........
   
    GUSTAVO MARTIN OCAMPO
     
    gocampo79@hotmail.com
       
    Wed, 10 Dec 2003 15:59:13 +0000
    
    
  
Hola lista, tengo una funcion de la forma.......
CREATE OR REPLACE FUNCTION plpg_detalle_mensual(text, text) RETURNS SETOF 
basemovim AS '
DECLARE
	newrow basemovim%ROWTYPE;
	mes ALIAS FOR $1;
	anio ALIAS FOR $2;
BEGIN
IF mes = ''Enero'' OR mes = ''enero'' OR mes = ''ENERO'' THEN
	FOR newrow IN Select basemovibanco.fecha_vencimiento, 
sum(basemovibanco.importe) as
total, tabdebicredi.descripcion as debicredi from (basemovibanco inner join 
tabdebicredi on
basemovibanco.id_debicredi = tabdebicredi.id_debicredi) where 
basemovibanco.fecha_vencimiento
between cast(''01-01-'' || anio as date) and cast(''31-01-'' || anio as 
date) group by
basemovibanco.fecha_vencimiento, debicredi order by 
basemovibanco.fecha_vencimiento, debicredi
desc LOOP
	RETURN NEXT newrow;
	END LOOP;
END IF;
IF mes = ''Febrero'' OR mes = ''febrero'' OR mes = ''FEBRERO'' THEN
	FOR newrow IN Select basemovibanco.fecha_vencimiento, 
sum(basemovibanco.importe) as
total, tabdebicredi.descripcion as debicredi from (basemovibanco inner join 
tabdebicredi on
basemovibanco.id_debicredi = tabdebicredi.id_debicredi) where 
basemovibanco.fecha_vencimiento
between cast(''01-02-'' || anio as date) and cast(''28-02-'' || anio as 
date) group by
basemovibanco.fecha_vencimiento, debicredi order by 
basemovibanco.fecha_vencimiento, debicredi
desc LOOP
	RETURN NEXT newrow;
	END LOOP;
END IF;
..................(continua para los otros meses)
...
RETURN;
END;
' language plpgsql;
..o sea, los parametros que le paso son el mes y el año, ahora, mi problema 
es con los años bisiestos, existe alguna funcion que me devuelva algun valor 
booleano diciendome si un año es bisiesto? otra idea que se me ocurre es 
crear otra funcion que, justamente, me diga si un año es bisiesto o no y 
llamar a esta funcion desde la descripta mas arriba, se puede hacer esto?
Otra pregunta que tengo es si hay manera de resumir un poco el codigo de 
esta funcion porque hacer un if por cada mes se me hace grande la funcion.
Desde ya gracias, y acepto todo tipo de sugerencias.-
_________________________________________________________________
Charla con tus amigos en línea mediante MSN Messenger: 
http://messenger.latam.msn.com/