我正在尝试做一个总结,如果 SELECT
中有任何数据,就做一个指标从现在开始的过去一天......或者只显示一天( if > 0 : +
, if < 0 : -
)。
像这样:这些是我的 table 。
我们假设,今天是2013-12-25
tb_employee:
ID_EMP EMPLOYEE
1 Employee 1
2 Employee 2
3 Employee 3
tb_requirement:
ID_REQ REQUIREMENT
1 Requirement 1
2 Requirement 2
3 Requirement 3
4 Requirement 4
tb_detail:
ID_DET ID_EMP ID_REQ EXPIRATION
1 1 1 2013-12-29
2 1 2 2013-12-28
3 1 3 2013-12-31
4 2 2 2014-01-05
5 2 3 2013-12-20
6 2 4 2013-12-15
现在,SELECT QUERY
应该像这样显示:
ID_EMP EMPLOYEE REQUIREMENTS_GOT ANY_REQ_EXPIRE
1 Employee 1 3 YES
2 Employee 2 3 NO
我希望我解释得很好。也许可以与 DATEDIFF
一起使用?
感谢您的回答...当然还有圣诞快乐!
最佳答案
由于您正在尝试确定是否有任何 要求已过期,因此您应该将最短到期日期与今天的日期进行比较。无需使用 datediff
- 一个简单的 >
运算符封装在 case
语句中就可以:
SELECT id_emp,
employee,
COUNT(*) AS requirements_got,
CASE WHEN CURDATE() > MIN(expiration) THEN 'yes' ELSE 'no' END AS any_req_expire
FROM tb_detail
JOIN tb_employee ON tb_detail.id_emp = tb_employee.id_emp
GROUP BY id_emp, employee
关于mysql - 如何获取 SELECT 中任何数据的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20776084/