掙扎與此,因爲我不擅長與SQL和設計器不會與OVER使用工作。基本上,如果用戶正在關注相關標籤,則會獲取主題列表。sql語法組由
我需要按T.TopicId
分組以阻止重複。如果用戶選擇與主題相關聯的多個標籤,它將列出該主題兩次(每個標籤一次)
當我在sql中添加一個組時,我得到了多個錯誤,並且我嘗試了重新排列事物並且不能得到它的工作,如所說我用SQL語句無用
@id int = null
AS
SELECT
*
FROM
(SELECT
ROW_NUMBER()
OVER
(ORDER BY TopicOrder desc
,
(CASE
WHEN M.MessageCreationDate > T.TopicCreationDate THEN M.MessageCreationDate
ELSE T.TopicCreationDate
END) desc)
AS RowNumber
,T.TopicId, T.TopicTitle, T.TopicShortName, T.TopicDescription, T.TopicCreationDate, T.TopicViews, T.TopicReplies, T.UserId, T.TopicTags, T.TopicIsClose,
T.TopicOrder, T.LastMessageId, T.UserName, M.MessageCreationDate, M.UserId AS MessageUserId, MU.UserName AS MessageUserName, U.UserGroupId,
U.UserPhoto, T.UserFullName
FROM Tags INNER JOIN
TopicsComplete AS T ON T.TopicId = Tags.TopicId LEFT OUTER JOIN
Messages AS M ON M.TopicId = T.TopicId AND M.MessageId = T.LastMessageId AND M.Active = 1 LEFT OUTER JOIN
Users AS MU ON MU.UserId = M.UserId LEFT OUTER JOIN
Users AS U ON U.UserId = T.UserId LEFT OUTER JOIN
tagfollows AS TF ON @id = TF.userid
WHERE (Tags.Tag = TF.tag)
)T
如果有人能幫助它將不勝感激,謝謝! :)
看起來對你說你想要的方式太複雜了。順便說一句,這是SQL服務器? – 2013-03-23 15:45:27
是的,這段代碼工作正常。我只是想把這個小組放在哪裏,但是然後它抱怨說所有的T.'s在一個聚合函數或小組中出現了 – mxadam 2013-03-23 15:51:45
您可以將連接轉換爲'tagfollows'到一個'EXISTS'子查詢中。 – 2013-03-23 16:02:37