• 贷款(列:标识、用户)
  • 投资回报(列:id,分期付款,scheduleDate)

如果一笔贷款是要支付12分期付款,然后有12投资回报的记录贷款的身份证。

我想找到了解用户有一个scheduleDate上的总和他们所有的回报大于2000年。

SELECT user 
FROM {loans} ka 
WHERE 
(
   SELECT MAX(inst) FROM 
   (
        SELECT SUM(installment) AS inst 
        FROM {payback} 
        WHERE id IN 
        (
            SELECT id 
            FROM {loans} 
            WHERE user = ka.user
        )  
   GROUP BY scheduleDate
   ) as t1 LIMIT 0,1
) > 2000

我得到了错误:未列'ka。用户'在'where'

有帮助吗?

解决方案

做这种工作的要求?它假设,投资回报。id是一个外国的关键参照的载荷。身份证。

SELECT
  user, scheduleDate, sumInstallments
FROM
(
    SELECT
      l.user, pb.scheduleDate, SUM(pb.installment) AS sumInstallments
    FROM
      payback AS pb
    JOIN
      loans AS l
    ON
      l.id = pb.id
    GROUP BY
      l.user, pb.scheduleDate
) AS tempId
WHERE
  sumInstallments > 2000
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top