Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите создать запрос с суммой / 2 сообщений из 2, страница 1 из 1
04.10.2013, 01:23:29
    #38416243
coden88
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать запрос с суммой
Доброе время суток. Прошу Вашей помощи. Пришлось столкнуться с mysql. Имею таблицу:

sender_id (int)
receiver_id (int)
pay_date (datetime)
summa (decimal)
status (tinyint)

Задача следующая: нужна выборка где выбраны все даты старше 20 дней с балансом для каждого пользователя. Система устроена так что если один перевел средства то другой их получил (внутренние фин. транзакции) БАЛАНС слаживается по алгоритму сумма полученная минус сумма отправленная.
Идея такова - примерно так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT `sender_id`, SUM(in_sum) AS income_sum, 
SUM(out_sum) AS outcome_sum, sum(in_sum - out_sum) AS total
	FROM 
		(SELECT `sender_id`, summa AS in_sum, 0 AS out_sum
			FROM `payments`
		UNION ALL
		SELECT `sender_id`, 0 AS in_sum, summa AS out_sum
		FROM `payments`)  AS t
GROUP BY `sender_id`;



для даты использовал Where pay_date < (NOW() - INTRVAL 20 day)
Но получаю ни то что хотелось. записи выбираются старше 20 дней но вот разность сумма (доход) не могу верный получить. Буду очень благодарен если поможете с запросом или хотя бы дадите намек в какую сторону копать
...
Рейтинг: 0 / 0
04.10.2013, 07:48:45
    #38416289
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать запрос с суммой
coden88
Код: sql
1.
2.
3.
4.
5.
SELECT `sender_id`, summa AS in_sum, 0 AS out_sum
			FROM `payments`
		UNION ALL
		SELECT `sender_id`, 0 AS in_sum, summa AS out_sum
		FROM `payments`

ну и что вы тут получаете? двойной набор записей для каждого сендера с одними и теми же ин_сум и аут_сум?
а потом для каждого сендера считаете две суммы, которые, естественно, получаются одинаковыми, потому что изначально так и выбирались... смысл? не проще ли сразу написать
Код: sql
1.
2.
select sender,summa AS in_sum,summa AS out_sum
 FROM `payments`

?
coden88с балансом для каждого пользователяопределите понятие "баланс", а то я уже начинаю сомневаться, что мы его одинаково понимаем...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите создать запрос с суммой / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]