我有3個表,Orders,Orders_products和Orders_total。目前我有一個查詢可以獲得每個月的產品總和,但是現在我們還想添加不同表中的運費。加入表中的列的總和
我嘗試用以下方法返回正確的total_value,但total_shipping是5倍大。我認爲這個訂單已經到期了,可以有多重產品,但我不知道還有什麼可以做的。
SELECT Count(DISTINCT O.orders_id) AS Orders,
Sum(OP.final_price * OP.products_quantity) AS total_value,
Date_format(O.last_modified, '%m-%Y') AS date_interval,
Sum(OT.value) AS total_shipping
FROM
orders AS O
LEFT JOIN
orders_total AS OT
ON (OT.orders_id = O.orders_id
AND OT.class = 'ot_shipping'),
orders_products AS OP
WHERE
(O.orders_id = OP.orders_id)
AND (O.orders_status = 3)
GROUP BY date_interval
ORDER BY O.last_modified DESC
返回的值是:
+----+------------+---------------+----------------+
| ID | total_value| date_interval | total_shipping |
+----+------------+---------------+----------------+
| 17 | 55912.2160 | 01-2014 | 24954 |
預計:
+----+------------+---------------+----------------+
| ID | total_value| date_interval | total_shipping |
+----+------------+---------------+----------------+
| 17 | 55912.2160 | 01-2014 | 4938 |
這裏是sqlfiddle http://sqlfiddle.com/#!2/dfe10/1/0
它包含一個順序,有3種款產品在裏面。預期的total_value是500,預期的total_shipping也是500,但返回1500(3 x個產品)。可惜的是我不得不從我的桌子上刪除很多字段,因爲限制了最多8000個字符的sqlfiddle。
節目表,如果你可以.. –
@SajadLfc我西港島線揣摩如何genrate表的一些文本的意見,但他們都具有應該使它們之間可以建立關係的orders_id –
Order_total的值中有什麼確切的值? –