のは、私は次のシナリオに一致するテーブルのセットを持っていると言いましょう:のOracle SQL:子テーブル内の値の合計に基づいてレコードを更新する必要性のヘルプ
クレートは ボックスが バケットが数値を保持バケツを持っている箱を持っています値 ボックスには、その中のすべてのボックスにあるすべてのバケットの全部の合計であるTotalPiecesという数値が格納されます。
したがって、私はCRATES、BOXES、BUCKETSと呼ばれる以下のテーブルを持っています。私は、すべてのバケツ片の合計になるように、クレート表のすべてのクレートのTotalPieces列(以下のSQLには表示されていません)を入力する更新文が必要です。はい、誰かが「まあ、なぜ選択文を実行するのではなく、そのようにしているのですか」と決めた場合の特定の理由で、このようにしなければなりません。私は、SELECT文を行うことができますし、それは次のようになります。私は木箱テーブルの断片列にすべてのバケットの合計の部分を取得するにはどうすればよい
SELECT CR.ID, SUM(BU.PIECES) FROM CRATES CR
JOIN BOXES BO ON BO.CRATE_ID = CR.ID
JOIN BUCKETS BU ON POPR.BO_ID = BO.ID
GROUP BY CR.ID;
?
SELECT BO.CRATE_ID AS CRATEID, SUM(BUCKETSUM) AS CRATESUM
FROM BOXES BO INNER JOIN
(SELECT BU.BO_ID AS BOXID, SUM(BU.PIECES) as BUCKETSUM
FROM BUCKETS BU GROUP BY BU.BO_ID) BU
ON BU.BOXID = BO.ID
GROUP BY BO.CRATE_ID
これは私に選択のように見えます。私は更新声明が必要です。 – oscilatingcretin
更新ステートメントを選択することはできません。ストアドプロシージャを記述したり、スクリプトを作成したり、2つのクエリを実行する必要があります。 –