Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Извлечь разницу сумм столбцов
 
 автор: Саринита   (26.10.2008 в 21:41)   письмо автору
 
 

Народ, я в 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.

Нарисуйте плиз -)))

  Ответить  
 
 автор: Trianon   (26.10.2008 в 21:50)   письмо автору
 
   для: Саринита   (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 

  Ответить  
 
 автор: Саринита   (26.10.2008 в 22:17)   письмо автору
 
   для: Trianon   (26.10.2008 в 21:50)
 

Спасибо за ответ и потраченное время!!! Первый вариант ругается, а второй работает как надо!!!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования