我有四张mysql表 client
, transaction
, other_loan
以及 payment
. 我想得到 sum
的 load_amount
以及 additional
从表 transaction
+ sum
的 amount
从 other_loan
以及 subtract
把它送到 sum
的 payment_amount
在表中 payment
. 我怎样才能做到呢?
我想要的结果:
> ID | Name | Amount
> 1 | Robin | 8718
> 2 | Reynaldo | 21
> 3 | Leomar | 0
我的表:事务
> tid | id| date | load_amount | additional
> 1 | 1 | 2018-12-01 | 90 | 0
> 2 | 1 | 2018-12-07 | 90 | 0
> 3 | 2 | 2018-12-08 | 49 | 2
表:其他贷款
> oid | id| amount | date
> 1 | 1 | 7928 | 2018-12-10
> 2 | 1 | 750 | 2018-12-10
表:付款
> pid |id | payment_amount | date
> 1 | 1 | 50 | 2015-12-10
> 2 | 1 | 90 | 2015-12-10
> 3 | 2 | 30 | 2015-12-10
表:客户
> id | Name |
> 1 | Robin |
> 2 | Cinderella |
> 3 | Leomar |
1条答案
按热度按时间nzk0hqpo1#
因为你有多个交易,其他贷款金额和支付每个客户,你不能做一个直接的交易
JOIN
因为这会导致行的复制,从而导致不正确的值。相反,我们SUM
在执行JOIN
. 另外,由于有些客户机在每个表中没有条目,因此必须使用LEFT JOIN
s和COALESCE
这样空行就不会导致和变为NULL
. 此查询应提供所需的结果:输出(对于示例数据):
sqlfiddle演示