コンポーネント製品レコードのコストを正常に抽出し、親/バンドル製品の全体コストを計算する複雑な SQL クエリがあります。このアプローチは、各コンポーネントにサプライヤーコストがあり、それ自体が親/バンドル製品ではない場合に機能します。
クエリ#1
リーリー私の目標は、バンドルされたコンポーネントのコストを削減するためにクエリを調整または書き換えることです。そのため、再帰的 CTE クエリが最適な方法のようです。
親 -> 子の関係を示すテーブルから各コンポーネントの製品 ID を抽出し、各コンポーネントに階層内のレベルを割り当てる CTE クエリを作成することに成功しました。私が苦労しているのは、この 2 つをどのように統合するかです。
CTE クエリ
リーリーより良いコンテキストを提供するために、ここに MySQL 8.0 フィドルを作成しました:
https://dbfiddle.uk/M6HT_R13
注: 処理を容易にするためにクエリ #1 を削除し、フィドル内の一部のフィールドを無視できるようにしました。
*編集: フィドルにparentid変数を設定して、現在のクエリがどのようにプルされるかを確認します:
追加のメモ。
クエリ #1 のサブクエリは、supplier2cost テーブルから優先または (設定されていない場合) 最低のサプライヤー コストを抽出することを目的としていますが、このサブクエリを CTE コンテキストで実装する方法がわかりません( もしそうなら)。
追加のコンテキストが役立つ場合は、質問してください。クエリを編集してその情報を提供します。
期待/期待される出力
製品SKU | 製品ラベル | バンドル親ID | コンポーネント_ID | ###レベル### ###量###優先 | 供給数量 | ###料金###調整後のコスト | サブコンポーネント#1 | ||
---|---|---|---|---|---|---|---|---|---|
35 | 2 | 1 | 1 | 1 | ###料金###ユニットあたりのコスト | サブコンポーネント#2 | CMP#3 | 36 | |
2 | 1 | 1 | 1 | ###料金###ユニットあたりのコスト | サブコンポーネント#3 | CMP#4 | 36 | 38 | |
1 | 1 | 1 | ###料金###ユニットあたりのコスト | コンポーネント#1 | CMP#1 | 34 | 33 | 1 | |
1 | 1 | ###料金###ユニットあたりのコスト | サブパッケージ | 外灘#1 | 36 | 33 | 1 | 1 | |
1 | ###料金###ユニットあたりのコスト | データは最終的に、次のコンポーネントのコスト表を提供するために使用されます。 | 全員に返信(1)返信しますP粉6752585982024-01-17 10:16:36 次のようなものが必要になるかもしれません: 2 番目の 返事 0 |