mysql - 多行条件 SQL 查询

标签 mysql sql

我正在尝试找出哪些客户拖欠了贷款。我想查询数据集以查找过去 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/

相关文章:

php - 如何在 mysql 或数组中查找未知字符

mysql - 从 MySQL 中的子查询返回一列中的值列表作为文本字符串

sql - MySQL - 如何运行按分数排序结果的 SELECT 查询 - 例如 upvotes - downvotes

sql - 通过 Synapse 将 JSON 从 CosmosDB 导入到 SQL

java - 将查询 mongo 转换为 spring Mongooperations

sql - 如何在 ssrs 的 IIF 表达式中使用多个条件(使用 AND)

sql - 如何编写一个查询,为某个用户拥有的每个索引生成一组 ANALYZE INDEX 命令?

php - MySQL 当前和上个月从日期开始的第一天和最后一天(无时间戳)

php - 数据库未更新(woocommerce 中的集成)

mysql - 如何选择之前未使用过的唯一ID