同じID値を持つアイテムの特定の値をマージして合計する方法

ravexu

だから私は2つのテーブルを持っています。OrdersおよびOrderItems関係は、各注文が多くのOrderItemを持つことができるということです(orderitemは単なる製品です)。

OrderItemテーブル

id INT PRIMARY KEY
name TEXT
quantity INT
pack_value INT
order_id INT FOREIGN KEY REFERENCES ORDER_ID ON ORDERS TABLE
product_id INT FOREIGN KEY REFERENCES PRODUCT_ID ON PRODUCTS TABLE

注文表

order_id INT PRIMARY KEY
status TEXT
user_id INT FOREIGN KEY REFERENCES USER_ID ON USERS TABLE

注文は、同じOrderItemを2回または1回だけ持つことができます。たとえば、以下のように、3つのアイテムが2つの製品です。

OrderItem(id=1, product_id=100, name="Pizza", quantity=2, pack_value=10, order_id=7)
OrderItem(id=2, product_id=100, name="Pizza", quantity=10, pack_value=1, order_id=7)
OrderItem(id=3, product_id=555, name="Olives", quantity=5, pack_value=1, order_id=7)

したがって、上記には2つのエントリがPizzaあり、これが私が得た結果です。ただしPizza、同じアイテムであるため、1つのエントリのみを表示したいと思います。以下は私が見たいものです:

OrderItem(product_id=100, name="Pizza", quantity=30, pack_value=1, order_id=7)
OrderItem(product_id=555, name="Olives", quantity=5, pack_value=1, order_id=7)

したがって、基本的に、アイテムが1回だけ存在する場合は、何もしません。それが2回存在する場合は、を作成しpack_value=1、数量は個々のの合計ですquantity*pack_valueしたがって、上記の例では、数量はになり(2*10 + 10*1 = 30)ます。

コントローラの方法は以下のようなものなので、ここでこれを実行します。

public function showOrderDetails(Order $order){
    return view('orders.show', compact('order'));
}

また、OrderそしてOrderItemモデルが関係する方法があります。たとえば、注文モデルでは次のようになります。

public function orderItems(){
    return $this->hasMany(OrderItem::class, 'order_id');
}

ありがとう、そしてあなたが私が提供できる追加情報が必要な場合。

ではない
SELECT name, 
       SUM(quantity * pack_value) AS quantity,
       1 AS pack_value,
       order_id
FROM order_items
GROUP BY name,
         order_id;

フィドル

サブクエリとして使用して別のテーブルをこのコードにマージするか、必要に応じてそれらをFROM句に追加します(出力リストとグループ化式を調整します)。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SQLで2つのテーブルをマージし、同じIDの値を合計する方法は?

分類Dev

2つのマップをマージし、同じキーの値を合計する最良の方法は?

分類Dev

特定の列に同じ値を持つ行を合計する方法

分類Dev

配列内のオブジェクト内の同じキーを持つすべての値を合計し、それらの平均を取得する方法

分類Dev

他のアイテムと同じ説明を共有する特定の一意のIDから合計値を返します

分類Dev

同じIDを持つアイテムから最高の価値を得る

分類Dev

同じIDを持つ前の行の値のみを合計する

分類Dev

特定の列が同じ値を持つテーブルの合計量

分類Dev

配列内の別の異なるjsonオブジェクトに同じ値を持つ配列内のすべてのjsonオブジェクトに新しいアイテムを追加/マージしますVueJs

分類Dev

同じ配列名の同じインデックスを持つ配列動的値をマージする方法

分類Dev

同じIDを持ち、同じ値または値がPHPでnullの場合、行をマージします

分類Dev

JSを使用して同じIDを持つ要素の値を取得する方法

分類Dev

配列内で同じアイテムの値の合計を作成します

分類Dev

同じマテリアライズ値を持つ複数のソースを組み合わせる

分類Dev

重複する値を持つデータフレーム上のアイテムをマージします

分類Dev

同じ請求書内のアイテムタイプを合計して、DAXでパーセンテージを見つける方法

分類Dev

少なくとも2つが同じプロパティ値を持っている場合、配列の要素をマージします

分類Dev

2つの配列をマップして1つのIFアイテムIDに異なるデータをマージしますjavascriptで同じ

分類Dev

2つの多次元配列をマージし、両方の配列に同じIDが存在する場合は値を合計する

分類Dev

同じアイテムと異なる日付の値の合計をreact.jsに表示する方法

分類Dev

同じテキスト値を持つExcelの行を合計する

分類Dev

SQLすべての行で同じ値を持つアイテムを選択します

分類Dev

同じキーを持つすべてのネストされた配列値をマージする方法

分類Dev

アルゴリズム:配列のすべての値を1つに応じて変更し、同じ合計を維持します

分類Dev

PartitionKeyValueとidの両方の値が同じ場合は、DeleteItemAsyncを使用してアイテムを削除します

分類Dev

値が同じである同じキーを持つdictのリストをマージする方法は?

分類Dev

同じIDのジレンマを持つ要素の値を変更するJavaScript

分類Dev

Pythonを使用して、ファイル内の同じキーと値のペアを持つjsonオブジェクトをマージします

分類Dev

同じIDを持つ異なるテーブルからすべての値を更新します

Related 関連記事

  1. 1

    SQLで2つのテーブルをマージし、同じIDの値を合計する方法は?

  2. 2

    2つのマップをマージし、同じキーの値を合計する最良の方法は?

  3. 3

    特定の列に同じ値を持つ行を合計する方法

  4. 4

    配列内のオブジェクト内の同じキーを持つすべての値を合計し、それらの平均を取得する方法

  5. 5

    他のアイテムと同じ説明を共有する特定の一意のIDから合計値を返します

  6. 6

    同じIDを持つアイテムから最高の価値を得る

  7. 7

    同じIDを持つ前の行の値のみを合計する

  8. 8

    特定の列が同じ値を持つテーブルの合計量

  9. 9

    配列内の別の異なるjsonオブジェクトに同じ値を持つ配列内のすべてのjsonオブジェクトに新しいアイテムを追加/マージしますVueJs

  10. 10

    同じ配列名の同じインデックスを持つ配列動的値をマージする方法

  11. 11

    同じIDを持ち、同じ値または値がPHPでnullの場合、行をマージします

  12. 12

    JSを使用して同じIDを持つ要素の値を取得する方法

  13. 13

    配列内で同じアイテムの値の合計を作成します

  14. 14

    同じマテリアライズ値を持つ複数のソースを組み合わせる

  15. 15

    重複する値を持つデータフレーム上のアイテムをマージします

  16. 16

    同じ請求書内のアイテムタイプを合計して、DAXでパーセンテージを見つける方法

  17. 17

    少なくとも2つが同じプロパティ値を持っている場合、配列の要素をマージします

  18. 18

    2つの配列をマップして1つのIFアイテムIDに異なるデータをマージしますjavascriptで同じ

  19. 19

    2つの多次元配列をマージし、両方の配列に同じIDが存在する場合は値を合計する

  20. 20

    同じアイテムと異なる日付の値の合計をreact.jsに表示する方法

  21. 21

    同じテキスト値を持つExcelの行を合計する

  22. 22

    SQLすべての行で同じ値を持つアイテムを選択します

  23. 23

    同じキーを持つすべてのネストされた配列値をマージする方法

  24. 24

    アルゴリズム:配列のすべての値を1つに応じて変更し、同じ合計を維持します

  25. 25

    PartitionKeyValueとidの両方の値が同じ場合は、DeleteItemAsyncを使用してアイテムを削除します

  26. 26

    値が同じである同じキーを持つdictのリストをマージする方法は?

  27. 27

    同じIDのジレンマを持つ要素の値を変更するJavaScript

  28. 28

    Pythonを使用して、ファイル内の同じキーと値のペアを持つjsonオブジェクトをマージします

  29. 29

    同じIDを持つ異なるテーブルからすべての値を更新します

ホットタグ

アーカイブ