使用 MySQL 存盤和查詢一些資料。我有兩張桌子
表A(費用清單):
id, order_id, amount, rate
表B(定單清單):
id, order_id, total, rate
兩個表中的比率都是百分比。對于每個最終的訂單行,A 中有很多行成本。我正在尋找的行為是輸出 B 中所有行的利潤總和,其中包括 A 的成本。
假設以下行A:
1, 69, 420, 15
2, 69, 100, 20
和行B:
1, 69, 1000, 10
2, 70, 500, 30
數學看起來像
((1000 - (420 * 15 / 100) - (100 * 20 / 100)) * 10 / 100)
(500 * 30 / 100)
= 241.7
我可能可以通過子查詢來完成這項作業,但我擔心 B 中的大量行在 A 中都有 0-30 行關聯,并且這將是一個經常發生的查詢。
任何幫助表示贊賞,如果需要澄清,請告訴我!:)
uj5u.com熱心網友回復:
使用 2 級聚合:
SELECT SUM((b.total - COALESCE(a.amount, 0)) * b.rate) / 100 total_profit
FROM tableB b
LEFT JOIN (
SELECT order_id, SUM(amount * rate) / 100 amount
FROM tableA
GROUP BY order_id
) a ON a.order_id = b.order_id;
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/449608.html
