2015-07-01 76 views
0

我有一個表sales_items,在這裏我們保存所有銷售項目的所有細節 - 我的表是:如何檢索多列的總和?笨


sales_id | sales item| No.ofpacks | quantity(liters pr pack) | 
---------  ----------- ------------ ---------------- 
    31   petrol  2    2.5 
    31   disel de2  3    3.2 
    34   petrol se  2    4.2 
    31   castrol  7    4.1 
------------------------------------------------------------------ 

現在我們想在任何一個sales_id升的總數,也就是說,如果我們採取sales_id 31,那麼我們希望總計liters =(2*2.5) + (3*3.2) +(7*7.2),我搜索但沒有找到任何合適的幫助谷歌。 我們嘗試:

public function total_liter($id) { 
     $q = $this->db->get_where('sale_items', array('sale_id' => $id), 1); 
     if ($q->num_rows() > 0) { 
      foreach($q as $row): 

      $total_liter += $row['no_of_packs']*$row['quantity']; 
      endforeach; 
     } 
     return FALSE; 
    } 
+0

你確定他們是你真正的專欄名嗎? – Viral

+0

no no ..它演示..我只想概念 – user3261307

+0

您寫的方法沒有提供所需的結果嗎?邏輯似乎沒有問題 – nitigyan

回答

1

我會用mysql

SELECT SUM(quantity * no_of_packs) as total FROM table_name WHERE sales_id = 31 

在這裏建議這樣做,是CI的味道,

$this->db->select('SUM(quantity * no_of_packs) as total', false); 
$this->db->from('table_name'); 
$this->db->where('sales_id', 31); 

注意,在選擇第二個參數將防止CI從增加不必要的反引號。

+0

但是我們怎樣才能將它的值賦給任何變量,通過這個變量我們可以在數據庫中保存我們可以使用的數據$ total = SELECT SUM(quantity * no_of_packs)作爲總數FROM table_name WHERE sales_id = 31; – user3261307

+0

恕我直言,什麼意思? – CodeGodie

+0

通過使用變量而不是31,如''sales_id = $ id「'或'$ this-> db-> where('sales_id',$ id);'在CI中應該在查詢之前定義'$ id' – Viral