一个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。出来的数据就不对了。不知道什么原因,请高手指点。谢谢!
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。出来的数据就不对了。不知道什么原因,请高手指点。谢谢!
你的sql语句的order by中c.name ,year与select子句中a.year, c.name ,对应,该了别的当然就错了。
你现在是以 supor_new.tbl_product_core_list 的 year
和 supor_new.tree_areapp 的name来分组查询的、
SELECT a.year AS year, c.name AS area_old, 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 area_old, year发现是能查出来的(area_old 三个表里都没有这个字段,是别名),不会报错但是我知道了:如果select 里的别名和from 里的表里的字段相同的话,group by 里是对真实存在的字段进行分组。所以以后应该注意下