MySQL 选择最大日期或空日期

标签 mysql sql

我会选择最大日期或空值,但它会显示一条错误消息。

Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=IS;, CASE WHEN MAX(DATE;CONCAT, DRIVER=3.64.114

原表为

Employee code           resignation date
001                     1/2/2013
001                     1/5/2014
001                     null
002                     10/10/2000

应该显示

EMPLOYEE_CODE           RESIGNATION_DATE
001                     null
002                     10/10/2000

这是我的问题

SELECT EMPLOYEE_CODE, 
       CASE 
           WHEN MAX(RESIGNATION_DATE IS NULL)= 0 
           THEN MAX(RESIGNATION_DATE) 
       END AS DATE
FROM MT_EMPLOYEE_CONTRACT
GROUP BY EMPLOYEE_CODE;

谁能找出问题所在? 谢谢

最佳答案

Can Anyone find out what is the problem?

在这种情况下:

MAX(RESIGNATION_DATE IS NULL)= 0

您正在比较 MAX(NULL)=0RESIGNATION_DATE IS NULL

您的查询应该是:

select emp_code, res_date /* first select null emp_code*/
From Table_name
where res_date IS NULL group by emp_code
UNION 
select emp_code, MAX(res_date ) /* select max from non - null emp_code*/
From Table_name
where emp_code NOT IN 
     (select emp_code From Table_name 
      where res_date IS NULL) 
group by emp_code

编辑

select DISTINCT emp_code, res_date /* first select null emp_code*/
From Table_name
where res_date IS NULL 
UNION 
select emp_code, MAX(res_date ) /* select max from non - null emp_code*/
From Table_name
where emp_code NOT IN 
     (select emp_code From Table_name 
      where res_date IS NULL) 
group by emp_code 

关于MySQL 选择最大日期或空日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23214770/

相关文章:

php - MySQL 确保 is_free_lock 始终是独占的

SQL Server比较机制

java - 如何使用 java.sql.Connection 创建 hibernate 实体管理器

mysql - 构造 SQL 查询以查找所有具有相同值的记录

php - Woocommerce:在前端使用元数据列出特定产品的销售情况

mysql - 在 group by 期间,我需要采用一个未在 group by 中使用的变量,我也不想采用它的聚合函数(我想要它原样)

mysql - 如何在一列中显示两列不同类型的内容?

mysql - 使用 EF 6 + MySQL 的 ASP.NET Identity 2 简单用户登录示例

php - MySQL 与 InnoDB : How to avoid using COUNT?

sql - 遍历 SQL 表并执行多个查询的最快方法