1 対多の関係を持つ 2 つのテーブル (orders、order_lines) があります。注文テーブルには 1 つの行があり、order_lines テーブルには注文に関連付けられた各製品に対して 1 つの行があります。
注文
+----------+-------------+---------------+
|order_num | total_order | shipping_total|
+----------+-------------+---------------+
| 12345 | 75.00 | 15.00 |
+----------+-------------+---------------+
ORDER_LINES
+----------+-------------+-------+
| order_num| volume | price |
+----------+-------------+-------+
| 12345 |10 |25.00 |
+----------+-------------+-------+
| 12345 |20 |25.00 |
+----------+-------------+-------+
| 12345 |20 |25.00 |
+----------+-------------+-------+
ORDERS テーブルの total_order & shipping_total 列と、ORDER_LINES テーブルの volume & price 列を合計したいと思います。
クエリは現在機能していません:
SELECT b_orders.bill_country, b_orders.ship_country
, SUM(volume) AS v, SUM(price) AS pt
, SUM(shipping_total) AS st, SUM(total_order) AS tot_o
FROM b_orders
JOIN b_order_lines
ON b_orders.order_num = b_order_lines.order_num
WHERE DATE(b_orders.order_date) BETWEEN '2012-04-02' AND '2012-04-06'
AND ship_country = 'USA'
AND b_order_lines.price > 0;
このクエリは間違った値を返しています。理由はわかりますが、適切なクエリの書き方がわかりません...助けてください。