Buen Hombre me podrías ayudar con esto
Bueno agregué el record en la salida tratando de sacar este otro Error
Error de SQL:
ERROR: wrong record type supplied in RETURN NEXT
CONTEXT: PL/pgSQL function "anosaprobados" line 33 at RETURN NEXT
La consulta es esta
***************************************
select * from anosaprobados(17938327)
La Funcion es
****************************************
CREATE OR REPLACE FUNCTION anosaprobados (integer)
RETURNS SETOF respuesta_anoscursados AS
$BODY$
DECLARE
RESPUESTA RECORD;
rutingresado ALIAS FOR $1;
BEGIN
FOR RESPUESTA IN (
SELECT
inst.rdb as insti,
pro.id_ano as id_año,
pro.rut_alumno as rut_alumno,
inst.nombre_instit as nombreinstitucion,
anes.nro_ano as numero_año,
(cu.grado_curso || '-' || cu.letra_curso) as cursoletra
FROM promocion pro
inner join institucion inst on inst.rdb = pro.rdb
inner join ano_escolar anes on anes.id_ano = pro.id_ano
inner join matricula ma on ma.id_ano = pro.id_ano and ma.rut_alumno =
17980141
inner join curso cu on cu.id_ano = anes.id_ano and cu.ensenanza > 110 and
cu.id_curso = ma.id_curso
WHERE
pro.rut_alumno = 17980141 and pro.situacion_final = 1 and pro.promedio > 0
and pro.asistencia > 0
UNION
SELECT
0 as insti,
0 as id_año,
conce.rut_alumno ,
conce.institucion,
conce.ano,
(conce.curso || '-' || conce.letra) as cursoletra
FROM concentracion_notas conce where conce.rut_alumno = 17980141 )
LOOP
RETURN NEXT RESPUESTA;
END LOOP;
RETURN;
END;
$BODY$
LANGUAGE plpgsql;
Con esto
CREATE TYPE respuesta_anoscursados AS
(rut_alumno integer,rdb integer,nombre_instit char(1000),nro_ano
integer,id_ano integer,cursoletra varchar(2))
Mmm esto es primera vez que lo ago estoy aprendiendo.
:D gracias