; CON i msgs
AS
(
-- ottenere il primo messaggio
SELEZIONARE 0 come MessageLevel,
a. [MessageID],
a. [ProfileID],
a. [FromProfileID],
a. [FromUsername],
b. [username] COME SentToUserName,
a. [oggetto],
a. [corpo],
convertito (varchar, A. [MsgDate], 107) COME zdate,
a. [MsgDate],
a. [MsgRead],
a. [MsgReplied],
a. [MsgNew],
a. [ReplyOfMessageID],
a. [InitialMessageID]
DA
[tbl_Messages] a
INTERNO UNIR
b [tbl_Profile]
SU
a. [ProfileID] = B. [ProfileID]
DOVE
a. [FromProfileID] = @FromProfileID
-- parte ricorsiva di CTE
UNIONE TUTTA
SELEZIONARE m.MessageLevel+1,
a. [MessageID],
a. [ProfileID],
a. [FromProfileID],
a. [FromUsername],
b. [username] COME SentToUserName,
a. [oggetto],
a. [corpo],
convertito (varchar, A. [MsgDate], 107) COME zdate,
a. [MsgDate],
a. [MsgRead],
a. [MsgReplied],
a. [MsgNew],
a. [ReplyOfMessageID],
a. [InitialMessageID]
DA
[tbl_Messages] a
INTERNO UNIR
b [tbl_Profile]
SU
a. [ProfileID] = B. [ProfileID]
INTERNO UNIR
msgs m.
SU
a. [ReplyOfMessageID] = M. [MessageID]
O A. [InitialMessageID] = M. [MessageID] -- non può avere bisogno di questo
)
SELEZIONARE *
Dai msgs
ORDINE da MessageLevel, [MsgDate] DESC
|