|
|
|
| Народ, я в MYSQL Не сильна мягко говоря, а очень нужно прикрутить к одной базе запросик. Помогите пожалуйста, я знаю что грамотным это на 5 минуток.
есть следующие таблицы:
1) Users. Поля (значимые) user_id, username
2) Members Поля (значимые) member_id, member_name, member_earned, member_spend
3) member_user поля user_id (из 1) и member_id (из второй)
Вобщем каждому юзеру принадлежит несколько мемберов.
Надо чтобы запрос посчитал sum(member_earned) - sum(member_spend) по всем мемберам для каждого юзера и выдал общую цифру -
Юзер 1 итог 000
Юзер2 итог 000
И т.д. рассортировав по алфавиту по полю username.
Нарисуйте плиз -))) | |
|
|
|
|
|
|
|
для: Саринита
(26.10.2008 в 21:41)
| |
SELECT u.user_id, u.username, SUM(member_earned) - SUM(member_spend) AS res
FROM Users u
LEFT JOIN member_user mu ON mu.user_id = u.user_id
LEFT JOIN Members m ON m.member_id = mu.member_id
GROUP BY u.user_id, u.username
ORDER BY u.username
|
Если есть неопределенные данные, и их можно приравнять нулю, вероятно, следующий будет удобнее:
SELECT u.user_id, u.username, SUM(COALESCE(member_earned - member_spend, 0)) AS res
FROM Users u
LEFT JOIN member_user mu ON mu.user_id = u.user_id
LEFT JOIN Members m ON m.member_id = mu.member_id
GROUP BY u.user_id, u.username
ORDER BY u.username
|
| |
|
|
|
|
|
|
|
для: Trianon
(26.10.2008 в 21:50)
| | Спасибо за ответ и потраченное время!!! Первый вариант ругается, а второй работает как надо!!! | |
|
|
|