[英]select distinct sumof from mysql query with having
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
只需使用此查询即可获得所需的结果
SELECT fee_amount as fee, SUM(fee_paid) as paid ,fee_type FROM tbl_fee A WHERE fee_user='105' group by fee_type
如果您不希望对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_amount
相同。 如果fee_amount
在费用类型和用户内可以不同,那么您需要指定如何处理这种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.