mysql - SQL,选择几年之前,但不选择之后

标签 mysql sql

好的,我有一张包含项目编号和客户的表格。 该项目根据年份编号。例如

  • 2017001
  • 2017002
  • 2017003

我想选择给定年份之前的所有客户,但如果他们在该给定年份之后也有项目编号,则不选择。

所以表格看起来像这样:

  • 2017001:客户 A
  • 2017002:客户 B
  • 2017003:客户端 C
  • 2016001:客户端 C
  • 2016002:客户端 D
  • 2016003:客户端 F
  • 2015001:客户端 C
  • 2015002:客户端 D
  • 2015003:客户端 F

如果我想选择 2016 年及之前的所有客户,我会得到客户 D 和 F,但不会得到 C,因为它也是 2017 年的。

我知道我可以选择所有 2016 年的客户,然后对每个客户进行循环以检查他们是否有 2017 年的项目编号,但是有没有更简单的方法可以在单个 SQL 语句中执行此操作?

我当前的声明如下:

SELECT * FROM jobs WHERE jobno < 2016000

我知道这行不通,但我正在尝试做这样的事情:

SELECT * FROM jobs WHERE jobno < 2016000 AND jobno !> 2016000

最佳答案

试试这个:

SELECT * FROM jobs WHERE jobno < 2017000

关于mysql - SQL,选择几年之前,但不选择之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45473840/

相关文章:

python - 更改 my.cnf 文件中的 innodb_page_size 不会重新启动 mysql 数据库

java - Jobstore 表中的 Quartz Scheduler 作业数据覆盖

PHP 回显列表

php - 计算当前行和上一行之间的时间差

MYSQL以分钟为单位获取两个日期时间之间的差异并在字段中更新

php - 从数据库中获取值到多个选择标签-在Codeigniter中

php - 条件偏好 sql 的更好方法

mysql - 获取meta_key等于的类别中的帖子数量?

sql - 为什么附加数据库时 "identity"列值不正确?

sql - Rails 4 清理用户输入