2011-03-16 49 views
0

我很新的这一点,在我的查询的SUM和MAX有问题:的MySQL查询:SUM/MAX问题

SELECT Score.performerId, Performer.performerName, 
Performer.countrycode, Country.countryName, Event.eventName, Score.points 
FROM Score, Performer, Country, Event 
WHERE points = (SELECT MAX(points) FROM Score 
    WHERE roundName = 'Final') 
AND roundName = 'Final' 
AND Score.performerId=Performer.performerId 
AND Performer.countryCode=Country.countryCode 
AND Score.eventId=Event.eventId 

,我将不胜感激任何帮助。

回答

1
SELECT 
    Score.performerId, Performer.performerName, 
    Performer.countrycode, Country.countryName, Event.eventName, Score.points 
FROM Score, Performer, Country, Event, 
    (
    SELECT Performer.PerformerId, SUM(score.Points) TotalScore 
    FROM Score, Performer, Country, Event 
    WHERE roundName = 'Final' 
    AND Score.performerId=Performer.performerId 
    AND Performer.countryCode=Country.countryCode 
    AND Score.eventId=Event.eventId 
    group by Performer.PerformerId 
    order by TotalScore Desc 
    LIMIT 1 
    ) MaxScore 
WHERE roundName = 'Final' 
AND Score.performerId=Performer.performerId 
AND Performer.countryCode=Country.countryCode 
AND Score.eventId=Event.eventId 
AND Performer.PerformerId=MaxScore.PerformerId 

我有点懒转换为ANSI风格的加入,但你应该开始寻找优先于逗号符号使用它们。