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() объединить все строки в результате.

Другие вопросы по тегам