关于网友提出的“ (DB2)求一个sql查询语句”问题疑问,本网通过在网上对“ (DB2)求一个sql查询语句”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: (DB2)求一个sql查询语句
描述: 先上表:
任务表 TASK:
id 主键,
task_id 任务标识,标志不同部门的同一个任务,
department_id 部门id,
status 状态 0初始,1正在执行,2已完成
数据:
id task_id department_id status
1 33 21 0
2 33 25 1
3 33 15 2
4 34 21 2
5 34 25 2
6 34 15 2
要求查询结果:
task_id 完成情况
33 未完成
34 已完成
要求:
1.一个task_id只显示一条
2. 完成情况只要有个部门不是2,就是未完成
解决方案1: select task_id,"已完成" as " 完成情况 " from TASK t
where task_id not in
(
select task_id from TASK s where s.status<>2
)
union
select task_id,"未完成" as " 完成情况 " from TASK t
where task_id in
(
select task_id from TASK s where s.status<>2
)
应该不是高性能的SQL,但应该可以满足你的需求,试试看
解决方案2:select task_id,elt(min(if(status=2,2,1)),'未完成','已完成')
from 任务表 t
group by task_id
以上介绍了“ (DB2)求一个sql查询语句”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2838603.html