我真的很頭痛,因爲如何解決這個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