我真的很头痛,因为如何解决这个mysql语句来获得我想要的结果。我也想告诉我,我是新来的MySQL和prorgramming。mysql - 如何解决这个查询?
我有4个表CUSTOMER,CUSTOMER_ACCT_SETTING,DEBT和PAYMENT。
这里是4张表与他们的记录,所以你可以联系。
CUSTOMER
CUSTOMER_ACCT_SETTING
债务
PAYMENT
当我运行这个MySQL的语句:
SELECT C.CUSTOMER_ID, C.NAME, C.ADDRESS, C.CONTACT_NUMBER,
SUM(((CAS.INTEREST_RATE/100) * D.AMOUNT) + D.AMOUNT) - COALESCE(SUM(P.AMOUNT), 0) AS CURRENT_BALANCE
FROM CUSTOMER C
INNER JOIN CUSTOMER_ACCT_SETTING CAS ON (C.CUSTOMER_ID = CAS.CUSTOMER_ID)
LEFT JOIN DEBT D ON (C.CUSTOMER_ID = D.CUSTOMER_ID)
LEFT JOIN PAYMENT P ON C.CUSTOMER_ID = P.CUSTOMER_ID
GROUP BY (C.CUSTOMER_ID)
ORDER BY C.NAME
结果如下:
PS:结果按名称排序。
我的问题是:
1)为什么我上第一行中的CURRENT_BALANCE列负的结果?我期待的结果是在16374.528
左右。
我期望的结果是这样的:
为什么投票下来?我的问题有什么问题?这是一个非常严肃的问题......我真的很难解决这个问题。我想问那个投票的人告诉我什么是错的。 – NinjaBoy 2012-02-22 02:26:03
我已经通过使用COALESCE(SUM(P.AMOUNT),0)解决了第二个问题, – NinjaBoy 2012-02-22 02:38:42