У меня есть 2 таблицы .. одна называется "претензия"
+----------+----------+--------+------------+
| claim_id | store_id | amount | created_by |
+----------+----------+--------+------------+
| 2 | 2 | 926.00 | 2 |
| 3 | 2 | 746.50 | 5 |
| 4 | 2 | 989.26 | 5 |
| 5 | 2 | 766.00 | 6 |
| 6 | 2 | 403.00 | 6 |
| 7 | 2 | 130.00 | 6 |
+----------+----------+--------+------------+
другая "претензия_прогресс"
+----------+------+------+---------------------+
| claim_id | type | paid | created |
+----------+------+------+---------------------+
| 2 | S | 0 | 2019-09-12 20:37:26 |
| 3 | S | 0 | 2019-09-12 21:52:32 |
| 4 | S | 0 | 2019-09-12 22:33:16 |
| 5 | S | 0 | 2019-09-12 22:53:58 |
| 6 | S | 0 | 2019-09-12 22:58:55 |
| 7 | S | 0 | 2019-09-12 23:01:40 |
| 5 | A | 0 | 2019-09-21 04:02:58 |
| 6 | A | 0 | 2019-09-21 04:03:02 |
| 5 | PP | 150 | 2019-09-21 04:03:10 |
| 5 | PP | 45 | 2019-09-21 04:03:22 |
+----------+------+------+---------------------+
уверен, что у них больше столбцов для каждой, но я упрощаюэто до такого.Claim_progress - это таблица для отслеживания статуса платежа таблицы заявок из типа S для отправки, затем A для утвержденного, затем PP в качестве промежуточного платежа и, наконец, P для платного.столбец «create_by» - это идентификатор пользователя в файле для заявки.
Что я пытаюсь сделать здесь, чтобы получить один лайнер, который выдает 2 столбца от общей суммы, а оставшаяся неоплаченная сумма претензии"создано".Таким образом, мне нужно получить последний прогресс по каждой претензии, идентифицируя ее как тип «А» или «ПП».
Общая утвержденная претензия от «create_by» 6 должна составить 1169, а общая сумма оплаченных будет 195Кстати, вот что я получил до сих пор, но мне интересно, если это избыточно или даже неправильно?
SELECT SUM(c.amount),cp3.paid FROM claim c
JOIN (SELECT claim_id,MAX(created) as maxprogress FROM claim_progress GROUP BY claim_id) cp ON (c.id=cp.claim_id)
JOIN claim_progress cp2 ON (cp.maxprogress=cp2.created)
JOIN (SELECT claim_id,SUM(paid) AS paid FROM claim_progress GROUP BY claim_id) cp3 ON (cp3.claim_id=cp.claim_id)
WHERE cp2.type IN ('A','PP') AND c.created_by='6'
Надеюсь, хозяева БД здесь могут пролить немного света.Спасибо.
РЕДАКТИРОВАТЬ:
Я ожидаю, что ответ будет таким
+----------------+------+
| total_approved | paid |
+----------------+------+
| 1169 | 195 |
+----------------+------+