Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте. Есть таблица транзакций. Типы:
Daily Earning - дневной заработок
Hold - временная заморозка суммы
UnHold - разморозка
Chargeback - штраф
Bonus - безвозмездный подарок
PayOut - выплата
Для типов кроме Daily Earning, поле id_daily_earning - это ссылка на какой либо день.
Нужно посчитать баланс, то есть от суммы заработка отнять сумму Hold, прибавить сумму UnHold и т.д.
Проблема в том, что при количестве записей в 100к запрос выполняется 15-20 сек
Вот пример таблицы:
Вот таблица: http://pastebin.com/hFaBMNEM
Вот запрос: http://pastebin.com/XVZHdytE
Вот EXPLAIN:
Можно вставить создание таблицы и запрос сюда: http://sqlfiddle.com/#!2/65a283
Из примера таблицы: надо взять записи с Daily Earning, к каждой из них получить суммы Hold, UnHold и пр. и присоединить. А потом уже сгруппировать по выбранному пользователем полю.
П.С. Группировки могут быть по разным полям. Там есть account_id, date и пр. В зависимости от группировки нужно видеть картину по заработкам (по дням, аккаунтам и пр.)
Отредактированно ray1992 (14.08.2014 19:34:17)
Неактивен
В общем самый приемлемый вариант оказался таким:
Неактивен