问题描述
对不起,我不知道该如何措辞,它实际上比听起来复杂得多。我的数据库中有以下内容:请查看链接中的屏幕截图:
我正在使用BIRT生成报告,我希望当priority = 2时,它显示为“高”值。同样,当优先级= 1时,显示“中”,当优先级= 1时,显示“低”。
但是我也希望当估计时间= 4时显示'16 + hrs',当估计时间= 3时显示'
现在我已经设法使用下面的代码进行优先处理;
SELECT date_created,CONCAT(first_name," ",last_name) as user,e_name,cc_name,'High' as priority,job_description,due_date,estimated_time,impediment
FROM job_planning as jp
INNER JOIN user as u
ON jp.user_id = u.id
INNER JOIN employer as e
ON jp.employer_id = e.id
INNER JOIN client_company as cc
ON jp.client_id = cc.id
WHERE jp.priority = '2'
union
SELECT date_created,'Medium' as priority,impediment
FROM job_planning as jp
INNER JOIN user as u
ON jp.user_id = u.id
INNER JOIN employer as e
ON jp.employer_id = e.id
INNER JOIN client_company as cc
ON jp.client_id = cc.id
WHERE jp.priority = '1'
union
SELECT date_created,'Low' as priority,impediment
FROM job_planning as jp
INNER JOIN user as u
ON jp.user_id = u.id
INNER JOIN employer as e
ON jp.employer_id = e.id
INNER JOIN client_company as cc
ON jp.client_id = cc.id
WHERE jp.priority = '0';
但是我如何也可以包含estimate_time?我可以在MySQL中使用OR吗?我不能使用AND,因为那样会将两者分开。
感谢并感谢您的帮助。
解决方法
SELECT ...,CASE priority WHEN 2 THEN 'High'
WHEN 1 THEN 'Medium',ELSE 'Low'
END AS verbal_priority,CASE estimated_time WHEN 4 THEN '16+hrs'
...