求SQL改造语句

Xiao_Ma123456789 2018-02-11 11:21:14
select a.order_quantity, a.deptname, a.status
from (

select count(mv.id) order_quantity, hr.deptname, 'exception' status
from hr_dept hr
left join mrp_wo_v mv
on mv.Manufact_Hr_dept_id = hr.id
and mv.plan_end_date > sysdate
and substr(mv.wo_date_str, 0, 4) = '2017'
and substr(mv.wo_date_str, 5, 2) = '12'

group by hr.deptname

union all

select count(mv.id) order_quantity, hr.deptname, 'normal' status
from hr_dept hr
left join mrp_wo_v mv
on mv.Manufact_Hr_dept_id = hr.id
and mv.plan_end_date < sysdate
and substr(mv.wo_date_str, 0, 4) = '2017'
and substr(mv.wo_date_str, 5, 2) = '12'
group by hr.deptname

) a
order by a.deptname, a.status;

问题:当 mv.plan_end_date 全部小于sysdate时,查不出excepiton的数据了,改怎么改造????要求数据必须成对存在,一个exception匹配一个normal
...全文
2030 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36611253 2018-03-21
  • 打赏
  • 举报
回复
and mv.plan_end_date > sysdate and substr(mv.wo_date_str, 0, 4) = '2017' and substr(mv.wo_date_str, 5, 2) = '12' 没有同时符合这三个条件的数据吧、还有 and substr(mv.wo_date_str, 0, 4) = '2017' and substr(mv.wo_date_str, 5, 2) = '12' 这个条件可以换成to_char(mv.wo_date_str,'yyyy-mm')='2017-12'
Xiao_Ma123456789 2018-02-24
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
楼主给下测试数据,和你的预期结果。方便大家回复你
当 mv.plan_end_date 全部小于sysdate时,不满足mv.plan_end_date > sysdate ,第一个Select肯定取不到数据。 预期的结果如下: 数量 部门 状态 0 21车间 exception 260 21车间 normal 0 23车间 exception 176 23车间 normal ..... ......
Xiao_Ma123456789 2018-02-24
  • 打赏
  • 举报
回复
引用 2 楼 blt 的回复:
1、当 mv.plan_end_date 全部小于sysdate时,不满足mv.plan_end_date > sysdate,所以第一个Select肯定取不到数据啊。 2、把 and substr(mv.wo_date_str, 0, 4) = '2017' and substr(mv.wo_date_str, 5, 2) = '12' 改为 and mv.wo_date_str like '201712%'会提高效率。
就是想在不满足大于sysdate的情况下,拼出exception的数据,该怎么改造语句能达到一个normal匹配一个exception的语句,求指教!
blt 2018-02-24
  • 打赏
  • 举报
回复
1、当 mv.plan_end_date 全部小于sysdate时,不满足mv.plan_end_date > sysdate,所以第一个Select肯定取不到数据啊。 2、把 and substr(mv.wo_date_str, 0, 4) = '2017' and substr(mv.wo_date_str, 5, 2) = '12' 改为 and mv.wo_date_str like '201712%'会提高效率。
卖水果的net 2018-02-12
  • 打赏
  • 举报
回复
楼主给下测试数据,和你的预期结果。方便大家回复你

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧