MySQL - Сложность получения суммы с другими данными между двумя таблицами
Я использую пакет Invision Power Board для покупок, но они не предоставляют способ получить сумму, которую заплатил клиент. Поэтому я пытаюсь написать SQL-запрос для этой информации. Мои знания SQL чрезвычайно ограничены, так что... я могу ошибаться.
Из того, что я собрал, информация, которая мне нужна, находится в двух таблицах, но способ ее вывода мне бесполезен, поскольку он выводит каждую отдельную покупку только с уникальным идентификатором участника (относительно бесполезен при массовых операциях и проверках)
Я дошел до этого момента...
SELECT member_id, email, name,
SUM(ibf_nexus_invoices.i_total) as SUM_TOTAL
FROM ibf_members
RIGHT JOIN ibf_nexus_invoices ON ibf_members.member_id = ibf_nexus_invoices.i_member
WHERE ibf_nexus_invoices.I_status = "paid";
Это берет все из таблицы членов и таблицы счетов, и выводит это следующим образом.
------------------------------------------------------------
member_id | email | name | SUM_TOTAL |
------------------------------------------------------------
4 | email@domain.com | "Derek" | 184.22 |
------------------------------------------------------------
На первый взгляд это выглядит так, как я хочу. Но он возвращает только одного человека, а не всех людей в списке участников. Кто-нибудь достаточно разбирается в SQL, чтобы направить меня в правильном направлении?
1 ответ
Вам нужно добавить
GROUP BY member_id
до конца запроса, чтобы получить строку на человека. В противном случае агрегатные функции, такие как SUM()
объединить все строки в результате.