29/03/2011, 14:51
|
| | Fecha de Ingreso: agosto-2005 Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 19 años, 2 meses Puntos: 7 | |
Respuesta: plpgsql: filtrar una consulta según otra consulta Hola huesos52
Quedando de esta forma:
Código:
CREATE OR REPLACE FUNCTION consultar_menu(id_usuario int) RETURNS SETOF menu_permisos AS $$
DECLARE
e boolean;
r menu_permisos%rowtype;
BEGIN
SELECT primerizo INTO e FROM cc1.usuarios WHERE id = $1;
IF primerizo = true THEN
RETURN QUERY SELECT * FROM menu_permisos WHERE id_usuario = $1 AND menu.id < 10;
ELSE
RETURN QUERY SELECT * FROM menu_permisos WHERE id_usuario = $1;
END IF;
END;
$$ LANGUAGE plpgsql;
Obtengo:
Código:
SELECT * FROM consultar_menu(10);ERROR: no existe la columna «primerizo»
LINE 1: SELECT primerizo = true
^
QUERY: SELECT primerizo = true
CONTEXT: PL/pgSQL function "consultar_menu" line 6 at IF
Sí el IF lo cambio por:
Código:
IF e.primerizo = true THEN
Obtengo:
Código:
SELECT * FROM consultar_menu(10);ERROR: falta una entrada para la tabla «e» en la cláusula FROM
LINE 1: SELECT e.primerizo = true
^
QUERY: SELECT e.primerizo = true
CONTEXT: PL/pgSQL function "consultar_menu" line 6 at IF
__________________ Gracias de todas todas
-----
Linux! |