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