; CON msgs
COMO
(
-- conseguir el primer mensaje
SELECCIONAR 0 como MessageLevel,
a. [MessageID],
a. [ProfileID],
a. [FromProfileID],
a. [FromUsername],
b. [username] COMO SentToUserName,
a. [tema],
a. [cuerpo],
convertido (varchar, A. [MsgDate], 107) COMO zdate,
a. [MsgDate],
a. [MsgRead],
a. [MsgReplied],
a. [MsgNew],
a. [ReplyOfMessageID],
a. [InitialMessageID]
DE
[tbl_Messages] a
INTERNO ENSAMBLAR
b [tbl_Profile]
EN
a. [ProfileID] = B. [ProfileID]
DONDE
a. [FromProfileID] = @FromProfileID
-- porción recurrente de CTE
UNIÓN TODA
SELECCIONAR m.MessageLevel+1,
a. [MessageID],
a. [ProfileID],
a. [FromProfileID],
a. [FromUsername],
b. [username] COMO SentToUserName,
a. [tema],
a. [cuerpo],
convertido (varchar, A. [MsgDate], 107) COMO zdate,
a. [MsgDate],
a. [MsgRead],
a. [MsgReplied],
a. [MsgNew],
a. [ReplyOfMessageID],
a. [InitialMessageID]
DE
[tbl_Messages] a
INTERNO ENSAMBLAR
b [tbl_Profile]
EN
a. [ProfileID] = B. [ProfileID]
INTERNO ENSAMBLAR
msgs m
EN
a. [ReplyOfMessageID] = M. [MessageID]
O A. [InitialMessageID] = M. [MessageID] -- no puede necesitar esto
)
SELECCIONAR *
De los msgs
ORDEN de MessageLevel, [MsgDate] DESC
|