Tengo 3 tablas: OrdenTrabajo, Usuarios, Bitácora.
Un usuario llama al técnico, por algún problema que tenga. Y el técnico busca soluciones para resolver el problema del usuario.
En la tabla orden, tengo:
Código SQL:
En la tabla usuario, tengo solo datos menores (por lo que no lo adjunto ), y solo requiero el nombre y correo de la persona.Ver original
CREATE TABLE ordentrabajo ( ord_pk_id INTEGER NOT NULL, ord_fk_usuario INTEGER NOT NULL, ord_requerimiento CHARACTER VARYING(20) NOT NULL, ord_descripcion text, ord_observacion text, ord_archivo CHARACTER VARYING(100), ord_estado INTEGER NOT NULL, ord_fecha_c DATE NOT NULL, ord_fecha_t DATE NOT NULL, ord_fk_tecnico CHARACTER VARYING(20) NOT NULL, ord_prioridad CHARACTER VARYING(20) NOT NULL, CONSTRAINT ord_pk PRIMARY KEY (ord_pk_id), CONSTRAINT ord_rut FOREIGN KEY (ord_fk_usuario) REFERENCES usuarios (usu_pk_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT ord_tecnico FOREIGN KEY (ord_fk_tecnico) REFERENCES tecnico (tec_username) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION )
Hasta aquí todo bien. Necesito ver ciertos datos de las órdenes finalizadas (ord_estado = 2) y algunos de los usuarios. La Sentencia que ocupo es la siguiente:
Código SQL:
Me devuelve algo como esto: Ver original
SELECT o.ord_pk_id AS "Id", u.usu_nombre AS "Nombre", u.usu_apellido AS "Apellido", u.usu_correo AS "Correo", o.ord_requerimiento AS "Requerimiento", o.ord_descripcion AS "Descripcion", o.ord_fecha_c AS "Fecha Inicio", o.ord_fk_tecnico AS "Tecnico" FROM public.ordentrabajo AS o, public.usuarios AS u WHERE o.ord_fk_usuario = u.usu_pk_id AND o.ord_estado = 2;
Código HTML:
43;"Mario";"Cares";"[email protected]";"Enlace";"No tiene conexion a internet";"2010-09-28";"juanito.peres"
Para eso, voy a la tabla Bitacora:
Código SQL:
En teoría, necesito hacer algo como Ver original
CREATE TABLE bitacora ( bit_pk_id INTEGER NOT NULL, bit_fk_orden INTEGER NOT NULL, bit_atencion CHARACTER VARYING(30) NOT NULL, bit_archivo CHARACTER VARYING(100), bit_actividad text NOT NULL, bit_fecha DATE NOT NULL, bit_fk_tecnico CHARACTER VARYING(20) NOT NULL, CONSTRAINT bit_pk PRIMARY KEY (bit_pk_id), CONSTRAINT bit_fk_orden FOREIGN KEY (bit_fk_orden) REFERENCES ordentrabajo (ord_pk_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT bit_fk_tecnico FOREIGN KEY (bit_fk_tecnico) REFERENCES tecnico (tec_username) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION )
Código SQL:
Y obtengo Ver original
SELECT b.bit_actividad, b.bit_fecha, b.bit_fk_tecnico FROM public.bitacora AS b, public.ordentrabajo AS o WHERE b.bit_fk_orden = o.ord_pk_id AND o.ord_estado = 2 AND b.bit_fk_orden = 43;
Código HTML:
"Ping al usuario";"2010-09-28";"smarquez" "Cable desconectado";"2010-09-28";"smarquez"
Código:
Soluciona esa parte.ORDER BY bit_pk_id DESC LIMIT 1;
El problema llega al momento de juntarlos y responder todo lo que necesito.
No creo que la mejor solución sea realizar las 2 consultas separadas, pero mientras no descubra como hacerlo, ps no hay de otra.
Gracias por adelantado