Buenos días lista!!! Un saludo para todos por acá! Quisiera saber si pueden ayudarme con lo siguiente: Tengo una tabla que guarda los mensajes enviados internamente entre distintos departamentos con la estructura
CREATE TABLE msj_mensajes_enviados ( msjid serial NOT NULL, areaid integer NOT NULL, asunto text, texto_mensaje text, -- cuerpo del mensaje destinatario text, -- contactoid si es externo, areaid si es dentro de la empresa, clienteid si es cliente destinatario_id integer, remitente text, -- contactoid si es externo, areaid si es dentro de la empresa, clienteid si es cliente remitente_id integer, fecha_enviado date, fecha_leido date, status_id smallint, anonimo_id smallint, msj_referencia_id integer, -- referencia al id de esta misma tabla, para el seguimiento del mensaje CONSTRAINT msj_mensajes_enviados_pkey PRIMARY KEY (msjid) ) Necesito hacer una consulta que me muestre los mensajes que antecedan al que estoy escribiendo como "respuesta" de otro, algo así como los mensajes que se muestran en la lista, una secuencia de las respuestas a un mensaje inicial. El mensaje inicial tiene un msj_referencia_id = 0, si el mensaje con msjid = 12 es respuesta del mensaje con msjid = 2 entonces el msj_referencia_id de msjid = 12 es 2. Espero haberme explicado correctamente y que alguien pueda ayudarme, ya que hasta el momento solo me trae los mensajes referenciados pero no el inicial. SELECT me.msjid, me.texto_mensaje, to_char(me.fecha_enviado,'dd/mm/yyyy') as fecha_enviado, me.msj_referencia_id FROM msj_mensajes_enviados me WHERE me.destinatario_id = 20000 AND me.status_id = 7 AND me.areaid = 111 AND me.msj_referencia_id != 0 UNION SELECT me.msjid, me.texto_mensaje, to_char(me.fecha_enviado,'dd/mm/yyyy') as fecha_enviado, me.msj_referencia_id FROM msj_mensajes_enviados me WHERE me.status_id = 7 AND me.areaid = 111 AND me.msjid = (SELECT me.msj_referencia_id FROM msj_mensajes_enviados me WHERE me.msj_referencia_id != 0 limit 1) Gracias! ------------ Virginia ------------
