create procedure [{databaseOwner}].[{objectQualifier}post_list](@TopicID int,@UpdateViewCount smallint=1, @ShowDeleted bit = 1, @StyledNicks bit = 0) asbegin set nocount on if @UpdateViewCount>0 update [{databaseOwner}].[{objectQualifier}Topic] set Views = Views + 1 where TopicID = @TopicID select d.TopicID, TopicFlags = d.Flags, ForumFlags = g.Flags, a.MessageID, a.Posted, Subject = d.Topic, a.Message, a.UserID, a.Position, a.Indent, a.IP, a.Flags, a.EditReason, a.IsModeratorChanged, a.IsDeleted, a.DeleteReason, UserName = IsNull(a.UserName,b.Name), b.Joined, b.Avatar, b.Signature, Posts = b.NumPosts, b.Points, d.Views, d.ForumID, RankName = c.Name, c.RankImage, (SELECT Count(*) FROM [dbo].[yaf_Thanks] i WHERE i.MessageID=a.MessageID) as MessageThanksNumber, (SELECT Count(*) FROM [dbo].[yaf_Thanks] i WHERE i.ThanksFromUserID=a.UserID) as ThanksFromUserNumber, (SELECT Count(*) FROM [dbo].[yaf_Thanks] i WHERE i.ThanksToUserID=a.UserID) as ThanksToUserNumber, (SELECT Count(DISTINCT MessageID) FROM [dbo].[yaf_Thanks] i WHERE i.ThanksToUserID=a.UserID) as ThanksToUserPostsNumber, (SELECT Null as Tag, Null as Parent, ThanksFromUserID AS UserID, ThanksDate FROM [dbo].[yaf_Thanks] i WHERE i.MessageID = a.MessageID for xml raw) AS ThanksInfo, Style = case(@StyledNicks) when 1 then ISNULL(( SELECT TOP 1 f.Style FROM [{databaseOwner}].[{objectQualifier}UserGroup] e join [{databaseOwner}].[{objectQualifier}Group] f on f.GroupID=e.GroupID WHERE e.UserID=b.UserID AND LEN(f.Style) > 2 ORDER BY f.SortOrder), c.Style) else '' end, Edited = IsNull(a.Edited,a.Posted), HasAttachments = (select count(1) from [{databaseOwner}].[{objectQualifier}Attachment] x where x.MessageID=a.MessageID), HasAvatarImage = (select count(1) from [{databaseOwner}].[{objectQualifier}User] x where x.UserID=b.UserID and AvatarImage is not null) from [{databaseOwner}].[{objectQualifier}Message] a join [{databaseOwner}].[{objectQualifier}User] b on b.UserID=a.UserID join [{databaseOwner}].[{objectQualifier}Topic] d on d.TopicID=a.TopicID join [{databaseOwner}].[{objectQualifier}Forum] g on g.ForumID=d.ForumID join [{databaseOwner}].[{objectQualifier}Category] h on h.CategoryID=g.CategoryID join [{databaseOwner}].[{objectQualifier}Rank] c on c.RankID=b.RankID where a.TopicID = @TopicID AND a.IsApproved = 1 AND (a.IsDeleted = 0 OR (@showdeleted = 1 AND a.IsDeleted = 1)) order by a.Posted ascendGO
(SELECT Null as Tag, Null as Parent, ThanksFromUserID AS UserID, ThanksDate FROM [dbo].[yaf_Thanks] i WHERE i.MessageID = a.MessageID for xml raw) AS ThanksInfo,