mysql - 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
然而,这似乎并没有按预期工作,因为它只返回一些我们在那个时间范围内确实有任务的客户。我将如何实现这样的功能?
解决方案
试试这个代码:
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”之前获得所有没有分配的客户
推荐阅读
- javascript - 如何删除
- 列出项目并使其余项目更改其位置和ID?
- swift - 如何在添加和删除行的同时防止 Array 崩溃?
- javascript - JavaScript 中的 click() 方法不适用于谷歌地图中的搜索
- php - 获取给定 URL 的 FB 行数的 PHP/JSON 方法 - 不是 Facebook 页面
- git - 为什么 git tag local 推送后会在远程创建两个标签?
- kotlin - 如何保持 Kotlin Ktor websocket 处于打开状态
- r - How to predict out-of-sample observations with depmixS4 package in R?
- javascript - 页面间vue组件数据
- java - 使用 JPA,我可以将 A 类中的字段从 OneToOne 到 B 类,然后将 B 类中的字段从 OneToOne 到 A 类吗?
- c++ - 如何在while循环中制作for循环输入数据,直到达到患者姓名