首页 > 解决方案 > SQL 在所有日期早于 x 的条目中查找最高日期

问题描述

我试图获取我的公司在去年没有任何任务的所有客户的列表。

SELECT MAX(assignment_date), full_name
FROM assignments 
    CROSS JOIN customers 
    WHERE assignments.customer_id = customers.id 
    AND assignment_date < '2017-01-01' -- Dynamic value from backend
GROUP BY full_name
ORDER BY assignment_date DESC

然而,这似乎并没有按预期工作,因为它只返回一些我们在那个时间范围内确实有任务的客户。我将如何实现这样的功能?

标签: mysqlsqldate

解决方案


试试这个代码:

  SELECT MAX(assignment_date), full_name
    FROM customers
    where id not in (SELECT id FROM customers inner join assigments on customers.id = assignments.customer_id WHERE assignment_date > '2017-01-01' )

这将返回您数据库中的所有客户,并删除去年确实有分配的所有客户。结果,您应该在“2017-01-01”之前获得所有没有分配的客户


推荐阅读