Есть 3 таблицы
fc_users
id, refname, refid
1, qqwe, 2
2, qwerty, 1
3, qqwe, 2
fc_deposit
sum, usid, date_add
100, 3, 1000
54, 2, 1111
10, 3, 1234
fc_bal_ins
sum, usid, date_add, status
50, 3, 1111, 2
1000, 1, 1500, 1
Нужно выбрать refname, refid и самую большую общую сумму по двум таблицам. При этом сумма должна высчитываться отдельно для каждого usid (id в таблицу fc_users) и группироваться по столбцу refname. Так же должно быть условие fc_bal_ins.status = 2
Т.е для выборки одной записи в результате должно получиться:
qqwe, 2, 160
При выборке >1
qqwe, 2, 160
qwerty, 1, 54
Т.е мы должны сложить все значения таблиц fc_deposit и fc_bal_ins с одинаковыми usid, взять по usid значения refname и rafid из fc_users и вывести по уменьшению сумм.
Мои попытки что-то сделать:
SELECT sum(s), urm as refname, uri as refid FROM
(SELECT us.refname as urm, us.refid as uri, sum(bal.sum) as s
FROM fc_users us, fc_bal_ins bal
WHERE bal.usid = us.id
AND bal.date_add >= '1000'
AND bal.sum >= '1'
AND bal.status = '2'
UNION ALL
SELECT us.refname as urm, us.refid as uri, sum(dep.sum) as s
FROM fc_users us, fc_deposit dep
WHERE dep.usid = us.id
AND dep.time >= '1000'
AND dep.sum >= '1') as Z
GROUP BY refname
ORDER BY sum(s) DESC LIMIT 1