各注文について、商品の合計額と合計支払い額がバランスを取るようにしたいと考えています。MySql:異なるテーブルからSUM値を取得するには?
これは、テーブルの縮小版である:
ORDERS
--------------------
|ord_id|customer_id|
--------------------
| 1| XYZ|
| .| .|
| .| .|
| .| .|
--------------------
ORDER_DETAILS
-----------------------------------------
|det_id|ord_id|product_id|quantity|price|
-----------------------------------------
| 1| 1| AAA001| 3| 30|
| 2| 1| BBB002| 2| 5|
| .| .| .| .| .|
| .| .| .| .| .|
| .| .| .| .| .|
-----------------------------------------
PAYMENTS
----------------------
|pay_id|ord_id|amount|
----------------------
| 1| 1| 10|
| 2| 1| 20|
| 3| 1| 10|
| .| .| .|
| .| .| .|
| .| .| .|
----------------------
このクエリは、製品のカウントが支払いのカウントのために同じであるときの支払いのための正しい値を取得するだけで、支払いのための正しい値を返しません。
SELECT o.ord_id, SUM(quantity * price) AS total_order, SUM(amount) AS total_payments
FROM orders AS o
INNER JOIN order_details AS d ON o.ord_id = d.ord_id
INNER JOIN payments AS p ON o.ord_id = p.ord_id
GROUP BY o.ord_id
これは期待された結果である:
-----------------------------------
|ord_id|total_order|total_payments|
-----------------------------------
| 1| 100| 40|
| .| .| .|
| .| .| .|
| .| .| .|
-----------------------------------
おかげで、私はn進める。
私はWITH修飾子(:5.1.41 MySQLバージョン)で構文エラーを取得しています。私はドキュメンテーション(http://dev.mysql.com/doc/refman/5.0/ja/group-by-modifiers.html)をチェックしますが、正しい句が表示されます。 – Leonardo