select aa.id,aa.name,bb.sum_grade from user aa  join
(

#找到了id跟总分
select a.user_id,a.add0-b.reduce0 sum_grade
        from
        (
            #先分为add跟reduce
            select user_id,sum(grade_num) add0
            from grade_info
            where type='add'
            group by user_id
        ) a  left join
        (
            #生成reduce
            select a.id,ifnull(sum(b.reduce0),0) reduce0
            from user a  left join
            (select user_id,sum(grade_num) reduce0
             from grade_info
             where type='reduce'
            group by user_id
             )b
            on a.id=b.user_id
            group by  a.id



        ) b
        on a.user_id=b.id
        group by a.user_id
    )

bb on aa.id=bb.user_id
where bb.sum_grade=(
select  max(t2.sum_grade)
from
(

#找到了id跟总分
select a.user_id,a.add0-b.reduce0 sum_grade
        from
        (
            #先分为add跟reduce
            select user_id,sum(grade_num) add0
            from grade_info
            where type='add'
            group by user_id
        ) a  left join
        (
            #生成reduce
            select a.id,ifnull(sum(b.reduce0),0) reduce0
            from user a  left join
            (select user_id,sum(grade_num) reduce0
             from grade_info
             where type='reduce'
            group by user_id
             )b
            on a.id=b.user_id
            group by  a.id



        ) b
        on a.user_id=b.id
        group by a.user_id
)t2
)
;