0
感謝來自很多人的幫助,我們給出了以下代碼,它非常棒。然而,我認識到我錯過了一些重要的信息,所以在這裏轉貼(用更新後的代碼)來澄清。SP:隨機記錄,Fave Record,加上已知記錄,無重複
下面的代碼從表5個隨機記錄以及基於在第二表中標識用戶的喜愛進一步單記錄:
CREATE PROCEDURE web.getRandomCharities
(
@tmp_ID bigint --members ID
)
AS
BEGIN
WITH q AS
(
SELECT TOP 5 *
FROM TBL_CHARITIES
WHERE cha_Active = 'TRUE'
AND cha_Key != '1'
ORDER BY NEWID()
)
SELECT *
FROM q
UNION ALL
SELECT TOP 1 *
FROM (
SELECT *
FROM TBL_CHARITIES
WHERE TBL_CHARITIES.cha_Key IN
(
SELECT members_Favourite
FROM TBL_MEMBERS
WHERE members_Id = @tmp_ID
)
EXCEPT
SELECT *
FROM q
) tc
END
然而,我意識到我還需要包括記錄在那裏「cha_Key =='1'」,如果它不與上面代碼中第二個SELECT語句中返回的記錄相同。
有意義嗎?
謝謝!!!
能否請您提供一些樣本數據和一個結果,你想要得到? – Quassnoi 2009-07-21 15:01:07