MySQL запрос: проблема SUM / MAX - PullRequest
0 голосов
/ 16 марта 2011

Я очень новичок в этом и у меня проблемы с суммой и 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 Ответ

1 голос
/ 16 марта 2011
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, но вы должны начать использовать их в предпочтении перед запятой.

...