【发布时间】:2016-09-01 18:32:49
【问题描述】:
只是不明白为什么我必须聚合每个表列,只是为了让 SQL SERVER 以另一种方式查看。很难理解。我为什么要这样做:
$this->db->select("MAX(c.id),MAX(c.name),MAX(c.phone)");
$this->db->select('MAX(state.name) as st_nm');
$this->db->select('MAX(lga.name) as "lga_nm"');
$this->db->select('MAX(cp2.point_name),MAX(cp2.location)');
$this->db->select('SUM(pr.amount) as "amt"');
$this->db->from('consultant as c');
$this->db->join('state','state.id=c.state','inner');
$this->db->join('lga','lga.id=c.lga','inner');
$this->db->join('collection_point2 as cp2','cp2.point_code=c.collection_point','inner');
$this->db->join('payment_records as pr','pr.consultant_id=c.unique_id','inner');
$this->db->where('c.agent_id',$agent);
$this->db->group_by('c.id');
$this->db->order_by('c.id');
只是为了避免这种情况:
Msg 8120, Level 16, State 1, Line 1 Column ... is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
【问题讨论】:
-
普利茅斯的 posi-trac 后端究竟是如何工作的?它就是这样。但说真的,这方面有很多参考资料。这是一个非常可靠的解释:stackoverflow.com/a/13998601/6167855 这是SO之外的另一个weblogs.sqlteam.com/jeffs/archive/2007/07/20/…
-
@user919426 我知道已经有类似的问题了,我只是想知道为什么会这样
-
@aknessy The answer 在那个问题上对
why给出了很好的解释 -
我猜是这样!仍然没有意义... MYSQL 不会抱怨...
标签: php sql-server codeigniter