我试图从两个不同的表中提取数据,以便在排名查询中使用。我试图保留左栏“pvpranking”中的数据,并合并其余的数据,从而合并我的右连接。
pvpscores-有pvpwins、pvplose和pvpgiveup。而恶作剧还有其他的。
我似乎无法正确地使用这些数据,而不会出现错误,例如存在重复的列。
我已经在谷歌搜索了一段时间了,所有的东西都让我在尝试的时候感到很困惑。我希望你们能引导我找到答案。
谢谢你抽出时间。
USE DNWorld
GO
WITH cte AS (
SELECT *, RANK() OVER (ORDER BY (((PVPWin * 1) + ([Kill] * 0.2) + ((PvpExp * 0.002)) - ((PVPLose * 0.5) + (Death * 0.1) + (PvPGiveUp * 0.25))) DESC) AS rn
FROM PvPRanking P
RIGHT JOIN PvpScores G
ON P.CharacterID = G.CharacterID
)
UPDATE cte
SET PVPLevel = CASE
WHEN rn = 1 THEN 26 -- #1 Rank Champion
WHEN rn BETWEEN 2 AND 10 THEN 25 -- Reita
WHEN rn BETWEEN 11 and 20 THEN 24 -- Warlord
WHEN rn BETWEEN 21 and 30 then 23 -- Slayer
WHEN rn BETWEEN 31 and 40 then 22 -- WATCH OUT
WHEN rn BETWEEN 41 and 50 then 21 -- Royalty
WHEN rn BETWEEN 51 and 60 then 20 -- Knight of Justice
WHEN rn BETWEEN 61 and 70 then 19 -- Furious Fiend
WHEN rn BETWEEN 71 and 85 then 18 -- Devil of PVP
WHEN rn BETWEEN 86 and 100 then 17 -- God Of PvP
ELSE 17
END
WHERE rn <= 100;```
1条答案
按热度按时间czq61nw11#
我可以通过创建临时表并提取数据来解决这个问题。