各位大神,您们好:
小弟做一个报表,遇到一个SQL语句不会写,求各位大侠不吝赐教!小弟在此提前拜谢了
需求:按照部门统计出订单的数量,并按照截止日期和系统日期进行比较,大于系统日期的为异常数据。小于系统日期的为正常数据。但是现在的情况是有些部门查询出的数据只有正常或者只有异常的数据,这样对我报表显示就会有问题。我想如果没有异常数据的话就拼个0出来。
另外部门并非固定的,得从MRP_WO_V这个视图里统计出来。
下面是我写的SQL语句,其中【:p1】,【:p2】为外部传入的参数,分别代表年和月
具体需求如下图:最下面的3个部门数据不成对,我想拼接一下改怎么改造我的SQL语句
select a.order_quantity,a.deptname,a.status from(
select count(mv.id) order_quantity,hr.deptname,'exception' status from mrp_wo_v left join hr_dept hr on mv.Manufact_Hr_dept_id = hr.id
where mv.plan_end_date > sysdate and substr(mv.wo_date_str,0,4)=:p1 and substr(mv.wo_date_str,5,2)=:p2
group by hr.dept_name
union
select count(mv.id) order_quantity,hr.deptname,'normal' status from mrp_wo_v left join hr_dept hr on mv.Manufact_Hr_dept_id = hr.id
where mv.plan_end_date < sysdate and substr(mv.wo_date_str,0,4)=:p1 and substr(mv.wo_date_str,5,2)=:p2
group by hr.dept_name
) a order by a.dept_name,a.status