2016-04-25 6 views
-3
select NATIONALPLAYERS.FIRSTNAME||' '|| NATIONALPLAYERS.LASTNAME as PlayerName, NATIONALPLAYERS.EXPERIENCEID, experience 

from NATIONALPLAYERS 

INNER JOIN (select experienceid, MAX(experiences.nationalgames + experiences.internationalgames) as experience 

from experiences 

group by experiences.EXPERIENCEID)plexperience 
on plexperience.experienceid = NATIONALPLAYERS.experienceid; 

これは私だけexperienceの最大値を求めたにもかかわらずPlayerNameExperienceID、およびExperienceからすべてのレコードを表示します。最大値で行を選択するにはどうすればよいですか?

+0

あなたは姓、経験のID&経験、最初の名前を求めています。それはそれが与えるものです! –

答えて

0

EXPERIENCEIDでグループ化し、それぞれ最大でEXPERIENCEを取得しています。EXPERIENCEに対応するEXPERIENCEIDが見つかりません。

あなたは最高の経験のための値を検索したい場合は、あなたが何かしたい:複数最高の行がある場合、

SELECT * 
FROM (
    select n.FIRSTNAME ||' '|| n.LASTNAME as PlayerName 
     n.experienceid, 
     e.nationalgames + e.internationgames as Experience 
    from NATIONALPLAYERS n 
     INNER JOIN 
     EXPERIENCE e 
     ON (e.experienceid = n.experienceid) 
    ORDER BY Experience DESC 
) 
WHERE ROWNUM = 1; 

かを:あなたが不足している何

SELECT * 
FROM (
    select n.FIRSTNAME ||' '|| n.LASTNAME as PlayerName 
     n.experienceid, 
     e.nationalgames + e.internationgames as Experience, 
     RANK() OVER (ORDER BY e.nationalgames + e.internationgames DESC) 
      AS rn 
    from NATIONALPLAYERS n 
     INNER JOIN 
     EXPERIENCE e 
     ON (e.experienceid = n.experienceid) 
    ORDER BY Experience DESC 
) 
WHERE rn = 1; 
0

があります最高の経験。あなたはexperience_idをチェックするが、経験値は、クエリのようなものである必要があり、最大値

であることを確認していません。

SELECT 
    NATIONALPLAYERS.FIRSTNAME||' '|| NATIONALPLAYERS.LASTNAME as PlayerName, 
    NATIONALPLAYERS.EXPERIENCEID, 
    experience 

from NATIONALPLAYERS 
INNER JOIN (
    select 
     experienceid, 
     MAX(experiences.nationalgames +  experiences.internationalgames) as experience 

    from experiences 
    group by experiences.EXPERIENCEID) AS plexperience 
on 
    plexperience.experienceid = NATIONALPLAYERS.experienceid 
    **plexperience.experience = NATIONALPLAYERS.experience;** 
+0

これは、それぞれの** EXPERIENCEIDに対して最大のEXPERIENCEを得ていますが、EXPERIENCEIDは最大EXPERIENCEです。 – MT0

関連する問題