看你的order by是以bb还是以cc为主了。谁为主为放前边

解决方案 »

  1.   

    因为cc 是进行累加的,数据是按cc进行的排序,当然是按cc为主,上面的显示结果有误,应该是:
       aa  bb  cc
    ======================
      0003  5  30
      0001  1  20
      0002  6  10
      0004  3  10
    我是希望bb 的值是数据库中最新一条数据的值,而不是最后一条的,无论我在后面是否加上id desc ,结果都是一样的
      

  2.   

    提示一下嵌套查询
    先select aa, sum(cc) as cc from tab1 group by aa order by cc desc
    然后...
      

  3.   

    select aa,bb,sum(cc) as cc from tab1 group by aa order by cc desc,bb desc
    有GROUP BY的时候,SELECT后不应该有与AA不相关的字段,你这条查询语句根本没告诉数据库你要是BB是哪一个,BB DESC也只是数据库自己在相同的AA记录里拿到了BB以后再进行排序的
      

  4.   

    试一下
    select tab1.aa,tab1.bb,ntab.cc from tab1,(select max(id) as id,sum(cc) as cc from tab1 group by aa) as ntab where tab1.id=ntab.id order by ntab.cc
      

  5.   

    楼上的应该是可以出来正确结果。(我没测试,但应该可以)关于楼主的问题,给你回答下,mysql中group by的时候显示的记录是同group 中最先插入的,也就是最旧的:P呵呵,因此楼主的想法用简单的sql是没办法实现的。
      

  6.   

    yh801216(艾奥利斯): 我后来也想了下,确实用简单的SQL没法来实现,感谢以上几位。结贴了