mysql错误内连接

时间:2013-11-01 07:35:10

标签: php mysql sql sql-server

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

此查询显示错误无效使用组功能。你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

只需用子查询替换JOIN表,子查询计算每个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

答案 1 :(得分:0)

尝试使用HAVING而不是WHERE。

相关问题