; AVEC des msgs
AS
(
-- recevoir le premier message
CHOISIR 0 comme MessageLevel,
a. [MessageID],
a. [ProfileID],
a. [FromProfileID],
a. [FromUsername],
b. [username] COMME SentToUserName,
a. [sujet],
a. [corps],
converti (varchar, A. [MsgDate], 107) COMME zdate,
a. [MsgDate],
a. [MsgRead],
a. [MsgReplied],
a. [MsgNew],
a. [ReplyOfMessageID],
a. [InitialMessageID]
DE
[tbl_Messages] a
INTÉRIEUR JOINDRE
b [tbl_Profile]
SUR
a. [ProfileID] = B. [ProfileID]
LÀ OÙ
a. [FromProfileID] = @FromProfileID
-- partie récursive de CTE
UNION TOUTE
CHOISIR m.MessageLevel+1,
a. [MessageID],
a. [ProfileID],
a. [FromProfileID],
a. [FromUsername],
b. [username] COMME SentToUserName,
a. [sujet],
a. [corps],
converti (varchar, A. [MsgDate], 107) COMME zdate,
a. [MsgDate],
a. [MsgRead],
a. [MsgReplied],
a. [MsgNew],
a. [ReplyOfMessageID],
a. [InitialMessageID]
DE
[tbl_Messages] a
INTÉRIEUR JOINDRE
b [tbl_Profile]
SUR
a. [ProfileID] = B. [ProfileID]
INTÉRIEUR JOINDRE
msgs m
SUR
a. [ReplyOfMessageID] = M. [MessageID]
OU A. [InitialMessageID] = M. [MessageID] -- ne peut pas avoir besoin de ceci
)
CHOISIR *
Des msgs
ORDRE PAR MessageLevel, [MsgDate] DESC
|