У меня возникают проблемы с левым SQL-запросом на соединение, но я не вижу, почему он не работает. У меня есть 3 таблицы: клиенты, покупки и платежи, и я пытаюсь выбрать клиентов, общая стоимость покупок которых меньше их общих платежей (т. Е. У них баланс больше 0).SQL-запрос с LEFT JOIN Проблема
До сих пор у меня есть следующие:
Таблицы:
Customers
id | Name
Purchases
id | customerid | cost
Payments
id | customerid | paymentamount
SQL запросов:
SELECT a.*,
COALESCE(b.totalCost , 0) as totalCost,
COALESCE(c.totalPayments , 0) as totalPayments,
COALESCE(b.totalCost , 0) - COALESCE(c.totalPayments , 0) AS Balance
FROM customers a
LEFT JOIN (SELECT customerid, SUM(cost) AS totalCost FROM purchases GROUP BY customer) b ON a.id = b.customerid
LEFT JOIN (SELECT customerid, SUM(paymentamount) AS totalPayments FROM payments GROUP BY customerid) c ON a.id = c.customerid
WHERE Balance > 0"
При запуске запроса, я получаю ошибку 'Неизвестный столбец' Баланс 'in' where clause '', хотя я определил Balance.
Любая помощь очень ценится. Благодаря!
Спасибо за помощь !! – mckeegan375
добро пожаловать. ':)', если вы хотите поместить инструкцию в подзапрос, см. также ответ @a_horse_with_no_name ':) ' –