這不是完全清楚你在做什麼之後,但我要猜你想要的3個活動以最低的隊伍(不重複),將獲得總獲得的積分+潛能點160以上。否則,你不清楚你是如何得到你要求的積分。在這種情況下,您可以嘗試如下所示:
SELECT StaffNumber, Activity1, Activity2, Activity3
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY a1.Rank, a2.Rank, a3.Rank) RowNum,
a.StaffNumber,
a1.Activity Activity1,
a2.Activity Activity2,
a3.Activity Activity3
FROM (
SELECT StaffNumber, SUM(PointsEarned) PointsEarnedTotal
FROM activities
GROUP BY StaffNumber
) a
INNER JOIN activities a1
ON a.StaffNumber = a1.StaffNumber
INNER JOIN activities a2
ON a.StaffNumber = a2.StaffNumber
AND a1.Activity <> a2.Activity
INNER JOIN activities a3
ON a.StaffNumber = a3.StaffNumber
AND a1.Activity <> a3.Activity
AND a2.Activity <> a3.Activity
WHERE a.PointsEarnedTotal + a1.PointsPotential + a2.PointsPotential + a3.PointsPotential >= 160
) a
where RowNum = 1
期望的結果是什麼?我並不完全遵循商業邏輯。 – Simon
引用該示例。 總分= 80 要完成1項活動,需要80分以上的積分。 期望的輸出必須提供他需要完成的3項活動中的哪一項才能補充80分的建議。 積分潛在領域將表明他可以從中獲得這些獎勵,但是,我只希望根據排名最高的活動輸出其中的3個,並確保3個活動會給他80分或更多的資格。 在此示例中,輸出如下: 活動1,2和4 90分 查詢需要是動態的。 –