2014-04-09 69 views
0

我想在select_sum語句之前有一個where語句。 因爲我想根據$項目有不同的總和。現在只需將所有數組變量計數爲一個和。我想在select_sum語句之前有一個where語句

我在codeigniter中這樣做。

型號:

function rapport_detail_opbrengsten($idKlant){ 
       $this->db->from('Project'); 
        $this->db->join('Opbrengsten', 'Opbrengsten.idProject = Project.idProject'); 
    if ($idKlant > 0){ 
      $this->db->where('idKlant', $idKlant);} 
      $query = $this->db->get(); 
      $project = array(); 
       foreach($query->result() as $row){ 
        $project[] = $row->idProject; 
       } 
        $this->db->select_sum('Prijs'); 
        $this->db->from('Opbrengsten'); 
           $this->db->where_in('idProject', $project); 

        $query = $this->db->get(); 

      if($query->num_rows()>0){ 
       return $query->result(); 
      } 
      else{ 
       return false; 
      } 
     } 
+2

你的意思是你想要一個'GROUP BY',這樣你就可以得到每個項目的總和(Prijs)嗎? –

+0

是的,這正是我想要完成的。我得到不同的總和(prijs)。但是,我如何完成這個?因爲當我這樣做︰$ this-> db-> group_by(「idProject」);它不會做任何事情。所以我不知道GROUP BY是否是正確的做法。 – Rene

回答

0

select_sum組所有的行..所以不會有效果,如果你手工組行的其他標準。試試像這樣

$this->db->select('idProject, SUM(Prijs) as total'); 
$this->db->from('Opbrengsten'); 
$this->db->where_in('idProject', $project); 
$this->db->group_by('idProject'); 
$query = $this->db->get(); 
+0

例如$ project有值(6,7,8),但是我想讓每個值的select_sum不同。當我像你的例子那樣做時,它仍然被彙總在一起。 – Rene

+0

你應該得到3行'ID'和'total', 你確定你改變了'select_sum'只是'select'? –

+0

是的,我改變了它,但所有的ID仍然有所有ID的價值在一起。 – Rene