2017-08-11 19 views
0

注文に属する各製品を記録するLaravel(order_product)にピボットテーブルがあります。Laravel groupBy列と合計数量列に基づいて合計を追加

は、私は、次の列を使用する "ORDER_ID、PRODUCT_ID、数量"

私は

DB::table('order_product')->selectRaw('*, count(*)')->groupBy('product_id'); 

を使用している場合は、私は、各製品の発生の数を取得します。

しかし、一部の製品は、複数の注文で発生します。それぞれの製品に個の列を掛け、product_idでグループ化して数えます。

最後に、商品ごとにグループ化されたすべての注文の合計数を取得する必要があります。

EDIT は、ここに私のデータベーステーブルです

enter image description here

所望の出力:

製品(ID = 30)5つの異なる順序からテーブル内の回、発生します。商品の合計と数量の列を掛け合わせると、になります。

+0

lad2025 @テーブル構造、サンプルデータと所望の出力 – lad2025

+0

を投稿してくださいポストを編集しました。見てみましょう。 –

答えて

0

商品ごとに数量欄の合計を使用して集計したいと思います。そこで、以下では動作するはずです:

DB::table('order_product')->selectRaw('product_id, SUM(qty)')->groupBy('product_id'); 

これは、次の生のMySQLのクエリに対応するであろう:

SELECT 
    product_id, 
    SUM(qty) 
FROM order_product 
GROUP BY 
    product_id 
関連する問題