日期:2014-05-16  浏览次数:20646 次

这是怎么回事?关于group by 的
一个sql:
select 
  a.year as year , c.name as area , sum(a.price) as price
from
  supor_new.tbl_product_core_list as a , supor_new.dict_terminal as b , supor_new.tree_areapp as c 

where
  a.terminal_num =b.terminal_num 
  and b.areapp=c.id
   
group by c.name ,year

上面这样写正确

但如果写成group by area,year。出来的数据就不对了。

不知道什么原因,请高手指点。谢谢!

------解决方案--------------------
group by 是用来分组的,有一个前提就是有重复数据,在select 子句中只能有分组字段(也就是重复的字段)和统计函数。
你的sql语句的order by中c.name ,year与select子句中a.year, c.name ,对应,该了别的当然就错了。


------解决方案--------------------
这个坑定是三个表中有重复的字段,你的加上表的别名才行啊
------解决方案--------------------
你看下 area 是不是其它表的什么字段。
你现在是以 supor_new.tbl_product_core_list 的 year 
和 supor_new.tree_areapp 的name来分组查询的、