2011-09-25 41 views
0

嗨,請幫我一下我對mysql/active記錄很陌生(以前的所有項目都只是基本的CRUD)我想加入兩張表,所以我可以生成一張我的發票表有一個小計(以竹發票數據庫結構)總結加入進行中的記錄

目前沒有運氣(語法錯誤)試圖

$this->db->select('invoice_number, dateIssued '); 
$this->db->select('(SELECT SUM(amount * qty) FROM manage_invoice_items DISTINCT invoice_id) AS subtotal' , FALSE); 
$this->db->from('manage_invoices'); 

$this->db->join('manage_invoice_items', 'manage_invoices.id = manage_invoice_items.invoice_id'); 
$this->db->where('client_id', $client_id); 

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

$this->db->select('invoice_number, dateIssued'); 
$this->db->from('manage_invoices'); 

$this->db->join('manage_invoice_items', 'manage_invoices.id = manage_invoice_items.invoice_id'); 
$this->db->where('client_id', $client_id); 

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

return $query->result(); 

我得到每個發票項目成果(我希望每張發票的結果與該發票號碼的發票項目的小計相同)

希望所有的發送都像我說的那樣,我對mysql不甚瞭解(即使引用了一個關於組合函數的好教程也很方便。

回答

2

我並不熟悉CodeIgniter/ActiveRecord,但它似乎是你想要使用GROUP BY函數對記錄進行分組。我發現this link可能會有幫助。你可能想使用:

$this->db->select_sum("amount * qty"); 

$this->db->group_by("invoice_number");        
0
$this->db->select('invoice_number, dateIssued'); 
    $this->db->select('ROUND((SUM(amount * qty)), 2) AS subtotal', FALSE); 
    $this->db->from('manage_invoices'); 

    $this->db->join('manage_invoice_items', 'manage_invoices.id = manage_invoice_items.invoice_id'); 
    $this->db->where('client_id', $client_id); 
    $this->db->group_by('invoice_number'); 
    $query = $this->db->get(); 


    return $query->result(); 

感謝Narthring(我不知道group_by