2
我有兩個mysql表:earning
和redemption
。 earning
表中的數據將添加到運行餘額中,redemption
表中的數據將從該餘額中減去。每個表格有一個hours
列和一個amount
列。 (這些原因在同一張表中並不是負面的和正面的,有多種原因,但即使有了這些原因,我現在已經意識到這可能是一個糟糕的模式設計,但是......現在我被卡住了用它)。從一個表中減去另一個表中的總和
如何獲得hours
和amounts
字段的當前餘額?更具體地說,我怎麼寫一個單一的查詢,會給我SUM(earning.hours) - SUM(redemption.hours)
和SUM(earning.amount) - SUM(redemption.amount)
,按Common_ID
分組?
一些示例數據。每個表格中都有其他字段,但目前我並不關心它們。
Earning:
+----+-----------+-------+--------+
| id | common_id | hours | amount |
+----+-----------+-------+--------+
| 1 | 234 | 1.03 | 15.75 |
| 2 | 234 | 2.06 | 33.00 |
| 3 | 237 | 2.11 | 12.29 |
| 4 | 237 | 3.50 | 18.63 |
+----+-----------+-------+--------+
Redemption:
+----+-----------+-------+--------+
| id | common_id | hours | amount |
+----+-----------+-------+--------+
| 1 | 234 | 2.50 | 30.00 |
| 2 | 234 | 0.50 | 5.68 |
| 3 | 237 | 1.00 | 8.00 |
+----+-----------+-------+--------+
Desired result:
+-----------+---------------+----------------+
| common_id | hours_balance | amount_balance |
+-----------+---------------+----------------+
| 234 | 0.09 | 13.07 |
| 237 | 4.61 | 22.92 |
+-----------+---------------+----------------+
請提供表格定義和樣本數據 – 2011-02-22 18:22:35
您可以在'收益'上不存在`redemption`上的common_id嗎?或相反亦然? – Lamak 2011-02-22 18:33:45