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
我覺得我的做法是不好的,所以是什麼或者是我的選擇,返回的任務狀態?
完美謝謝!我只是發現它自己啊哈 –