Ver Mensaje Individual
  #16  
Antiguo 26-10-2015
banthas banthas is offline
Miembro
NULL
 
Registrado: oct 2015
Posts: 26
Reputación: 0
banthas Va por buen camino
Je ya encontre la solucion creo que me sirvio simplemente preguntar y ya solito me respondi
Dejo el codigo talvez a alguien le sirva

Código Delphi [-]

CREATE OR REPLACE FUNCTION consulta2(
    nombre text,
    curso text,
    gestion  int,
)
  RETURNS table (nombre text, gestion int, curso text, operador text, total int) AS
$$

DECLARE
 
    sql text;
BEGIN
sql := 'SELECT alumno.nombre as nombre,alumno.gestion as gestion,alumno.curso as curso,operador.detalle as operador,count(*) as total FROM alumno
inner join operador on alumno.id_operador=operador.id_operador
 WHERE 1=1 ';
 IF nombre <>0 THEN sql := sql || ' AND alumno.nombre in('||nombre||')'; END IF;
 IF curso <>0 THEN sql := sql || ' AND alumno.curso in('||curso||')'; END IF;
 IF gestion <>0 THEN sql := sql || ' AND alumno.gestion in('||gestion||')'; END IF;

 
sql:=sql || 'GROUP BY alumno.nombre,alumno.gestion,alumno.curso,operador.detalle';

for var in execute sql loop
nombre:= var.nombre
curso:= var.curso;
 gestion:=var.gestion;
 operador:=var.operador;
 total:=var.total;
 return next;
end loop;
end;
$$
  LANGUAGE plpgsql;
Responder Con Cita