Buenas tardes,
Queria realizarles la siguiente consulta: necesitamos armar un sql para saber quien es el autorizante de ciertos trámites, ya sea una solicitud u orden de compra por ejemplo. El tema es que sabemos que la tabla scp_autorizaciones, guarda el id del usuario autorizante, pero la pregunta es con que tabla cruzar para poder obtener el id del trámite del cual es autorizante. Porque en la tabla scp_autorizaciones, figura un id_tabla, id_registro y id_autorizacion pero no se cual utilizar y con que tabla para obtener finalmente los trámites autorizados por tal usuario.
Te comento que la tabla de autorizaciones (scp_autorizaciones) registra las autorizaciones para todas las etapas, por eso es que no hace referencia directa a ninguna etapa por medio de una fk, pero conociendo las relaciones entre las tablas es sencillo sacar cuaquier clase de reporte.
Te explico lo más importante:
scp_autorizaciones contiene cada entrada del circuito de autorización
scp_tablas contiene la relación a la etapa. Ejemplo el id 1 se corresponde a la etapa de solicitudes, 2 a la convocatoria, etc.
id_registro, contiene el id del trámite para la tapa.
Entonces para la combinación en scp_autorizaciones:
id_tabla =1, id_registro = 10, se corresponde al id_solicitud = 10 de la solicitud
id_tabla =2, id_registro = 5, se corresponde al id_convocatoria = 5 de la convocatoria.
id_tabla =9, id_registro = 3, se corresponde al id_recepcion = 3 de la etapa de recepción.
Si queres probar un poco más, te dejo este sql para que lo tengas como referencia. Combina las tablas scp_autorizaciones, scp_estados , scp_usuarios y scp_tablas.
set search_path to diaguita;
SELECT
u.nombre || ' ' || u.apellido as usuario
,a.fecha_cambio
,a.comentario
,e.nombre as estado
,t.descripcion_tabla as tabla
,a.id_registro
FROM
scp_autorizaciones a
LEFT JOIN scp_estados e ON (a.estado = e.estado)
,scp_usuarios u
,scp_tablas t
WHERE
a.id_usuario_autorizante = u.id_usuario
AND a.id_tabla = t.id_tabla
Sobre este sql de referencia podes ir agregandole más clausulas al WHERE para ir filtrando distintos resultados, asi como columnas disponibles en cualquiera de las tablas vinculadas.