2017-06-12 101 views
0

該DB有一個表格,即records。其中有product_idquantity,store_idlaravel - 在具有相同值的另一列下獲得具有相似列值的行的小計

我需要獲得屬於某個store_id的那些行的數量總和,然後具有相同的product_id值。

例如,該表的值爲:(2,3,4),(2,1,5),( 2,2,4)然後我需要將總計quantity和其他列從第一和第三行。第二行也將出現在結果中。

讓我們假設控制器名稱爲RecordController,型號名稱爲Record

我該如何編寫查詢?

編輯:該表具有值:(2,3,4),(2,1,5),(1 2,2,4-

+0

所以,你想獲得'product_id'分組的數量'count',其中'store_id'? – Ohgodwhy

+0

你期望什麼結果? –

+0

@Ohgodwhy,對於某個'store_id',查詢將查找相同的'product_ids',然後從這些行中添加'quantity'。其他列也應該可用 –

回答

0

它可以使用單個查詢來完成。

試試這個: -

DB::table('records') 
    ->select('product_id',DB::raw('sum(quantity) as quantity'),'store_id') 
    ->groupBy('product_id') 
    ->groupBy('store_id') 
    ->get(); 

說明: 這個查詢將獲取的所有記錄&他們組由product_id & store_id那樣只會得到一個單列的單品中商店。然後它會在輸出中顯示sumquantity

更新: -

使用ORM: -

\App\YourModelName::select('product_id',DB::raw('sum(quantity) as quantity'),'store_id') 
    ->groupBy('product_id') 
    ->groupBy('store_id') 
    ->get(); 

但你需要寫在任何情況下的原始查詢,不能使用默認的ORM的功能做

+0

如何使用ORM編寫查詢? –

+0

讓我試試它是否有效 –

+0

如何在查詢中除了3以外的其他列? –

相關問題