У меня действительно болит голова с тех пор, как исправить эту инструкцию mysql, чтобы получить желаемый результат. Я также хочу сообщить, что я новичок в mysql и прорграммировании.mysql - Как исправить этот запрос?
У меня есть 4 таблицы КЛИЕНТ, CUSTOMER_ACCT_SETTING, DEBT и PAYMENT.
Вот 4 таблицы с их записью, чтобы вы могли общаться.
КЛИЕНТ
CUSTOMER_ACCT_SETTING
ДОЛГОВАЯ
ОПЛАТА
Когда я запускаю это 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
Я решил второй вопрос, используя COALESCE (SUM (P.AMOUNT), 0) – NinjaBoy