Я хочу показать некоторую информацию о последних 2 регистрациях в конференции в виде таблицы ниже.Эти таблицы показывают, например, что последняя регистрация была сделана Джоном и является регистрацией с 2 участниками, и общая стоимость регистрации была 10,00.
User that did the registration | Quantity of participants registered | Total Value
John 2 10.00$
Jake 1 5.00$
Знаете ли вы, как правильно добиться этого сSQL-запрос?Я тестирую вот так, но он не работает: http://www.sqlfiddle.com/#!9/225d82.
select users.name,
count(participants.registration_id),
sum(registration_types.price)
from
users,
participants,
registration_types
Group by(users.name)
Запрос возвращается:
name count(participants.registration_id) sum(registration_types.price
Jake 8 80
John 8 80
Но он должен вернуть:
name count(participants.registration_id) sum(registration_types.price
Jake 3 30
John 1 10
Структура таблиц, относящихся к вопросу:
У меня есть таблица участников, в которой хранятся все участники конференции:
id registration_id registration_type_id name
1 1 1 Jake
2 1 1 Jane
3 1 2 Paul
4 2 2 Ben
В таблице регистрации хранятся все регистрации:
id status conference_id user_that_did_registration
1 incomplete 1 1 (User with id 1 did the registration in the conference with id 1)
2 incomplete 1 2
В таблице типов регистрации хранятся типы регистрации:
id name price conference_id
1 rtype1 5.00 1
2 rype2 10.00 1
Таблица пользователей
id name
1 John
2 Jake