0
我想构建一个查询,返回任务是否非常晚/晚/接近准时/准时。是否有可能在SQL中有条件地返回字段?
任务状态: 早期如果-2天
附近的时间,如果-1天
末如果为1天
改变后期如果2个天
我已经试过:
SELECT field_1, diff,
COUNT(CASE WHEN diff <= -2 THEN 1 END) onTime,
COUNT(CASE WHEN diff <= -1 THEN 1 END) nearOnTime,
Count(CASE WHEN diff >= 2 THEN 1 END) veryLate,
Count(CASE WHEN diff >= 0 THEN 1 END) Late
FROM(
SELECT field_1, DATEDIFF(day,Max(predicted_date), realization_date) as diff
FROM table
Group by field_1, realization_date
HAVING end_date is not null) as req1
GROUP BY field_1, diff)
diff:预测的d吃和实现日期 =>返回天的这两个日期
它返回的数字:
field_1 | diff | onTime | nearOnTime | veryLate | Late
---------+--------+----------+--------------+------------+-------
task1 | -3 | 1 | 1 | 0 | 0
task2 | 2 | 0 | 0 | 1 | 1
我觉得我的做法是不好的,所以是什么或者是我的选择,返回的任务状态?
完美谢谢!我只是发现它自己啊哈 –