Сейчас у меня есть 3 таблицы, первая для пользователей, вторая для группы пользователей и третья для точек (и другие, если вы хотите один Я мог бы создать его для вас: P).Mysql: сумма значений таблицы в зависимости от разных видов деятельности
Таблица пользователей: user_id | fname | active
Таблица user_groups: id | group_id | user_id | active
Таблица user_points: id | point_type | point_units | active
Каждый пользователь группы может заработать очки для различных видов деятельности. Итак, я хочу показать те моменты, которые пользователи заработали для их различных видов деятельности, и в итоге общая сумма.
Вот запрос, который я до сих пор:
SELECT
u.user_id AS `ID`,
u.fname AS `Name`,
SUM(case when up.point_type = 'Referrals' then up.point_units else 0 end) AS `Referrals`,
SUM(case when up.point_type = 'Email' then up.point_units else 0 end) AS `Email`,
SUM(case when up.point_type = 'Facebook' then up.point_units else 0 end) AS `Facebook`,
SUM(case when up.point_type = 'Twitter' then up.point_units else 0 end) AS `Twitter`,
SUM(case when up.point_type = 'Extra' then up.point_units else 0 end) AS `Extra`,
SUM(case when up.point_type = 'Discount' then up.point_units else 0 end) AS `Discount`,
SUM(case when u.user_id = up.user_id then up.point_units else 0 end) AS `Total`
FROM users AS u, user_groups AS uc, user_points AS up
WHERE u.user_id = uc.user_id
AND u.user_id = up.user_id
AND u.active = 1
AND uc.active = 1
AND up.active = 1
AND uc.group_id = up.group_id
AND uc.group_id = 65
ORDER BY u.fname;
Проблема, что у меня есть, что запрос показывает только один пользователь, а общая сумма очков всех пользователей в каждой колонке.
Я знаю, что это неправильный подход, но я не знаю, как поставить все в запрос. Кроме того, я даю этот запрос PHPExcel, чтобы он мог создать приятный дружественный отчет.
Любые идеи? :-)
работал идеально, спасибо! – nomeacuerdo