Hola.
Estoy de nuevo por estos lados, hace rato que no participaba, bueno, hoy me trae una consulta bastante sencilla. Quiero construir una función en pgplsql que me calcule un valor y lo pueda obtener desde un select.
ejemplo:
CREATE TABLE datos.importancia
(
id bigint,
nombre character varying(50) NOT NULL,
importancia smallint
)
esta tabla contiene el grado de importancia, lo que define cual es la de mas prioridad.
pongamos un ejemplo.
'Alta', 5
'Media', 2
'Baja', 1
'Medio importante', 3
Tabla empleados
CREATE TABLE datos.empleado
(
id bigint,
nombre character varying(100) NOT NULL,
)
y ahora la tabla direcciones, la cual esta relacionada con empleados y con importancia.
CREATE TABLE datos.direcciones
(
id bigint,
direccion character varying(100) NOT NULL,
empleado_id,
importancia_id
)
CONSTRAINT "FK_direcciones_1" FOREIGN KEY (empleado_id)
REFERENCES datos.empleado (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
CONSTRAINT "FK_direcciones_2" FOREIGN KEY (imortancia_id)
REFERENCES datos.importancia (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
ahora lo que deseo es obtener la dirección mas importante para cada empleado, donde la mas importante es la que tenga mayor valor de importancia.
El rollo es que deseo hacer un select de esta forma
Select nombre, direccion_id from datos.empleado;
donde direccion_id sea el id de la tabla direcciones que le corresponde al empleado y sea una funcion de pgplsql.
espero haber sido lo sufientemente claro, no esta de mas aclarar que un empleado puede tener mas de una direccion de diferente categoria de importancia.