本帖最后由 jackylynn 于 2009-09-24 10:17:21 编辑

解决方案 »

  1.   

    把结果再Join一遍slelect a.username, b.TotalMoney, b.MaxBuyTime
    from buyer a 
         left join 
         (select buyer.userid, buyer.username, sum(list.buymoney), max(list.buytime)
          from buyer left outer join list on buyer.userid = list.userid
          where list.buytime between '2009-9-18' and '2009-9-21'
          group by buyer.username
         ) b
         on a.userid=b.userid
    order by b.TotalMoney desc
      

  2.   

    select buyer.username, sum(list.buymoney), max(list.buytime)
    from buyer left outer join list on buyer.userid = list.userid
    AND list.buytime between '2009-9-18' and '2009-9-21'
    group by buyer.username
    order by list.buymoney desc
      

  3.   

    楼上才是正解,注意on条件和where 条件在外部联接时有着不同的用途,而在内联接时效果一样.