· 7 years ago · Feb 09, 2019, 06:40 AM
11 = complete task (status = completed)
22 = pending task (in the future and not status=completed)
33 = overdue task (in the past and set to pending)
4
5CREATE TABLE IF NOT EXISTS `tasks` (
6 `task_id` int(10) NOT NULL AUTO_INCREMENT,
7 `task_date` date DEFAULT NULL,
8 `task_status` enum('pending','approved','complete','cancelled') NOT NULL
9 PRIMARY KEY (`task_id`)
10) ENGINE=MyISAM DEFAULT CHARSET=utf8;
11
12SELECT
13 CASE
14 WHEN task_status = 'complete' THEN 'Complete Task'
15 WHEN status != 'complete' AND task_date > NOW() THEN 'Pending Task'
16 WHEN status = 'pending' AND task_date < NOW() THEN 'Overdue Task'
17FROM
18 tasks
19
20SELECT
21 ...
22 CASE
23 WHEN task_status = 'pending' AND task_date > CURDATE()
24 THEN 'overdue'
25 ELSE task_status
26 END AS task_status,
27 ...
28FROM tasks
29WHERE
30 ...
31
32SELECT task_id, task_date,
33 CASE
34 WHEN task_status = 'complete' THEN 'completed task'
35 WHEN task_status != 'complete' AND task_date > CURDATE() THEN 'pending task'
36 WHEN
37 (task_status != 'complete' AND task_date <= CURDATE())
38 OR (task_status = 'pending') THEN 'pending task'
39 END AS task_status_str
40FROM
41 tasks