我正在尝试找出哪些客户拖欠了贷款。我想查询数据集以查找过去 60 天内未付款的客户的 User_id,但不确定如何在 SQL 中实现此操作。
User_id Due_Date Loan_Amount Paid_Amount
1 2012-04-04 16:14:12 500 40
1 2012-05-04 16:14:12 500 40
1 2012-06-04 16:14:12 500 0
1 2012-07-04 16:14:12 500 0
1 2012-08-04 16:14:12 500 0
2 2012-02-15 03:30:55 2030 100
2 2012-03-15 03:30:55 2030 100
2 2012-04-15 03:30:55 2030 100
3 2012-01-03 12:24:42 777 10
3 2012-02-03 12:24:42 777 0
3 2012-03-03 12:24:42 777 0
3 2012-04-03 12:24:42 777 0
在伪代码中(以粗体显示)看起来像这样,但我似乎无法在 MySQL 中实现它:
从 TABLE_NAME 中选择 User_id,其中 Loan_Amount > 0 AND [Paid_Amount 值已在 60 天内为空]
期望的输出: 上述查询中的用户1和3将被返回,因为他们连续三个周期没有付款。
注意:Due_Date 是时间戳
任何想法将不胜感激!
最佳答案
看来您可以使用DATEDIFF(date1, date1)
函数来获取拖欠借款人的列表。
SELECT DISTINCT
user_id
FROM table_name n
JOIN (SELECT user_id, max(due_date) maxDate FROM table_name GROUP BY user_id) t
ON n.user_id = t.user_id
AND n.due_date = t.maxDate
WHERE
loan_amount > 0
AND paid_amount IS NULL
AMD DATEDIFF(due_date, getdate()) > 60
关于mysql - 多行条件 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34830358/