SELECT
bp.project_id,
bp.project_name,
bp.project_costing,
bp.project_borrower_id,
bp.member_userid,
bp.project_staus,
SUM(pb.payment_amount) as total
FROM borrower_project_master as bp
INNER JOIN payment_invest_master as pb ON bp.project_borrower_id=pb.payment_borrowerid
WHERE (
(SUM(pb.payment_amount)/bp.project_costing)*100 < 100
AND bp.project_staus='Y'
)
ORDER BY RAND() LIMIT 0,3
this query show the error Invalid use of group function. Can you help me to solve this problem
Just replace JOIN table with subquery which counts sum for each payment_borrowerid
SELECT bp.project_id,bp.project_name,bp.project_costing,bp.project_borrower_id,
bp.member_userid,bp.project_staus,pb.SUM_payment_amount as total
FROM borrower_project_master as bp
INNER JOIN
( select payment_borrowerid,SUM(payment_amount) as SUM_payment_amount
FROM
payment_invest_master
GROUP BY payment_borrowerid
)
as pb ON bp.project_borrower_id=pb.payment_borrowerid
WHERE (
(pb.SUM_payment_amount/bp.project_costing)*100 < 100
AND bp.project_staus='Y'
)
ORDER BY RAND() LIMIT 0,3
尝试使用HAVING代替WHERE。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.