выберите отдельную сумму из запроса MySQL с

table structure
=====================================================================
id |fee_amount|fee_paid|fee_type|fee_user|date         | Fee_for
=====================================================================
1  | 2000     | 500    | REG    | 105    | 01.02.2017  | FEB
-----------------------------------------------
2  | 2000     | 1000   | REG    | 105    | 03.02.2017  | FEB
-----------------------------------------------
3  | 2000     | 500    | REG    | 105    | 04.02.2017  | FEB
-----------------------------------------------
4  | 1000     | 500    | FEE    | 105    | 10.03.2017  | MAR
-------------------------------------------------------------
5  | 1000     | 500    | FEE    | 105    | 11.03.2017  | MAR
--------------------------------------------------------------
6  | 1000     | 1000   | FEE    | 105    | 13.03.2017  | APR

Из вышесказанного я сохраняю детали оплаты комиссии

одному студенту выплачивается сумма как частично по вышеуказанным значениям

используя это мне нужно, чтобы получить общую сумму и общую сумму оплаченных сборов, а остаток необходимо оплатить

для этого я использовал

SELECT SUM(fee_amount) as fee, SUM(fee_paid) as paid ,fee_type
FROM tbl_fee A WHERE fee_user='105'
group by fee_type
having SUM(fee_amount)!=(SUM(fee_paid)

Но это становится

6000  | 2000 | REG
2000  | 1000 | FEE

мне нужно получить

2000  | 2000 | REG
1000  | 1000 | FEE

0

Решение

Просто используйте этот запрос, чтобы получить результат, который вам нужен

SELECT fee_amount as fee, SUM(fee_paid) as paid ,fee_type FROM tbl_fee A WHERE fee_user='105' group by fee_type
0

Другие решения

Если вы не хотите суммировать fee_amount поле, то просто не суммируйте его, а либо включите в group by пункт или использовать any_value() функция, чтобы сделать ваш запрос совместимым со стандартом sql:

SELECT fee_amount as fee, fee_type, SUM(fee_paid) as paid
FROM tbl_fee A
WHERE fee_user='105'
group by fee_type, fee_amount

Очевидно, эти решения предполагают, что fee_amount одинаково в рамках fee_type для всех пользователей. Если fee_amount Может отличаться в зависимости от типа оплаты и пользователя, поэтому вам нужно указать, как обращаться с такими ситуациями.

0

По вопросам рекламы [email protected]