group by 后面的列名要和select后面的列名一致.比如你的语句应该改为
mcstat="SELECT book_name, sold_num FROM book,machine_sold where book.book_id=machine_sold.book_id  group by book_name, sold_num";
但我不知道这样会不会无法实现你的要求。因为如果group by 与select的列名不一致,你想这样如何来进行分组操作。不知你是否明白我的意思。

解决方案 »

  1.   

    trymcstat="SELECT book_name, sum(sold_num) as sold_num FROM book,machine_sold where book.book_id=machine_sold.book_id group by book.book_id, book_name";
      

  2.   

    mcstat="SELECT book.book_name, sum(machine_sold.sold_num) as sold_num FROM book,machine_sold where book.book_id=machine_sold.book_id group by book.book_id";
      

  3.   

    select 后面的字段必须在group by后面出现!改为:
    mcstat="SELECT book_name, sold_num FROM book,machine_sold where book.book_id=machine_sold.book_id  group by machine_sold.book_id,book_name, sold_num ";
      

  4.   

    我的意思是按book_id统计销售量,应该怎么写嘛,
    我试了,不能实现,它只是把每条销售记录列出来而已
      

  5.   

    如果sold_num的数字是不一样还好,是一样的就分不了组了