問題の解決策を見つけることができません。私は4つのテーブルを持っています:
BomModule:このテーブルは、データベース内のモジュールを表します。
CREATE TABLE "BOMMODULE"
(
"MODULEID" NUMBER(10,0) NOT NULL ENABLE,
"ISROOTMODULE" NUMBER(1,0) NOT NULL ENABLE,
"MODULENAME" VARCHAR2(255 CHAR),
...
)
BomItem:このテーブルは、リーフまたはデータベース内のアイテムを表します。
CREATE TABLE "BOMITEM"
(
"ITEMID" NUMBER(10,0) NOT NULL ENABLE,
...
)
ModuleConnection:このテーブルは、モジュールを別の親モジュールにマップします。特定の親モジュールに属するサブモジュールの数を定義できます。
CREATE TABLE "MODULECONNECTION"
(
"ID" NUMBER(10,0) NOT NULL ENABLE,
"QUANTITY" NUMBER(10,0) NOT NULL ENABLE,
"SUBMODULE_MODULEID" NUMBER(10,0) NOT NULL ENABLE,
"PARENTMODULE_MODULEID" NUMBER(10,0) NOT NULL ENABLE,
...
)
ItemModuleConnection: このテーブルは、すべてのleave-itemをモジュールにマップします。さらに、1つのモジュールのアイテムの数量を定義できます。
CREATE TABLE "ITEMMODULECONNECTION"
(
"ID" NUMBER(10,0) NOT NULL ENABLE,
"QUANTITY" NUMBER(10,0) NOT NULL ENABLE,
"ITEMID" NUMBER(10,0),
"MODULEID" NUMBER(10,0),
...
)
表の構造からわかるように、アイテムとモジュールは相互に接続されており、数量が異なります。これらの接続は非常に柔軟であるため、SQLステートメントを作成できません。これにより、アイテムの合計数量がわかります。
select quantity from ...... where itemId = xy;
SQLステートメントは、アイテムからルートモジュールまでのすべての数量をチェックし、それらを乗算する必要があります。
2 x rootmodule (total 2)
-- 1x submodule 1 (total 2)
-- 2x submodule 2 (total 4)
---- 5x item 1 (total 20)
---- 6x item 2 (total 24)
このSQLステートメントの作成を手伝ってください。あなたの答えに感謝します!
制約:-SQL
ステートメントである必要があります(Javaアプリケーションで使用されます)
-データベースはOracle11gです