2016-11-14 120 views
-2

我的表是这样的:tables 输出需要看起来像这样:output如何做两个查询并合并为一个答案?

但随着我当前的代码我得到的是玩家还是gsExperiencePoints下的空白答案罢了。我相信我需要分开问题,然后结合答案,但我不太清楚如何去解决这个问题,任何人都可以解释如何做到这一点(我不想回答)

SELECT 
    gamerFirst + ' ' + gamerLast as 'Gamer', 
    gsExperiencePoints 
FROM GAMER 
    JOIN GAME_STAT ON GAMER.gamerID = GAME_STAT.gamerID 
     JOIN GAME ON GAME_STAT.gameID = GAME.gameID 
      JOIN DEVELOPER ON GAME.devID = DEVELOPER.devID 
WHERE devName = 'Blizzard Entertainment' AND gsExperiencePoints = (SELECT MAX(gsExperiencePoints) AS gsExperiencePoints FROM GAME_STAT) 
GROUP BY gsExperiencePoints, gamerFirst, gamerLast 

回答

0

如果我理解正确的话,你只需要TOP 1ORDER BY

SELECT TOP 1 gamerFirst + ' ' + gamerLast AS Gamer, 
     gsExperiencePoints 
FROM GAMER g JOIN 
    GAME_STAT gs 
    ON g.gamerID = gs.gamerID JOIN 
    GAME g 
    ON gs.gameID = g.gameID JOIN 
    DEVELOPER d 
    ON g.devID = d.devID 
WHERE devName = 'Blizzard Entertainment' 
ORDER BY gsExperiencePoints DESC; 
+0

即加入格式是可怕的! ;) –

+0

@GordonLinoff我不能使用TOP 1(我被告知不会),我需要做两个查询,然后将其合并。我被告知把它拆分,然后把它们放在一起。 – Chibbie