SUM() based on a different condition to the SELECT

后端 未结 3 1736
生来不讨喜
生来不讨喜 2021-02-05 20:56

Hi is there a way that I can do the SUM(total_points) based on a different condition to the rest of the SELECT statement, so I want the SUM(total_points) for every row which is

3条回答
  •  一整个雨季
    2021-02-05 21:31

    You can also put the sum inside a case statement, where the case evaluates the other condition, and then only sum thoses records where the condition is true...

      SELECT m.member_id, m.teamname, 
        Sum(Case When r.track_Id = '$chosentrack' 
             Then total_points Else 0 End) TotalChosenTrackPoints,
        Sum(Case When r.track_Id < '$chosentrack' 
             Then total_points Else 0 End) TotalLessThanChosenTrackPoints, 
        total_points as last_race_points  
     FROM members m
        Join members_leagues l
           On l.member_id = m.member_id  
        Join member_results r
           On r.member_id = m.member_id
     Where l.league_id = '$chosenleague'
        And l.start_race = '$chosentrack'
     Group By m.member_id
     Order By r.total_points Desc, 
         last_race_points  Desc, m.TeamName Desc  
    

提交回复
热议问题