当记录为空时怎么虚拟一笔记录

当记录为空时怎么虚拟一笔记录

当记录为空时如何虚拟一笔记录

SQL:

select a.user_name,’工作工时’,sum(a.work_hour),b.dept_name from user_work a,sys_dept b

where a.dept_id=b.dept_id

group by a.user_name

union

select a.user_name,’浪费工时’,sum(a.waste_hour),b.dept_name from user_waste a,sys_dept b 

where a.dept_id=b.dept_id

group by a.user_name 

如果有一条记录:张三,工作工时,10,采购 (此员工的浪费工时记录为空)

怎么才能返回如下记录:

  张三,工作工时,10,采购 

  张三,浪费工时, 0,采购 

请不吝指教



union后面的改为

select a.user_name,’浪费工时’,ifnull(sum(b.waste_hour),0),c.dept_name from user_work a left join user_waste on a.user_name = b.user_name inner join sys_dept c on a.dept_id=c.dept_id




最好是创建一个人员表。这样可以使用left join



SQL code

select a.user_name,'工作工时',sum(a.work_hour),b.dept_name 
from user_work a left join sys_dept b
on a.dept_id=b.dept_id
group by a.user_name
union
select a.user_name,'浪费工时',sum(a.waste_hour),b.dept_name 
from user_waste a left join sys_dept b  
on a.dept_id=b.dept_id
group by a.user_name


只有增加一个临时表,与工作表连接
当记录为空时怎么虚拟一笔记录

相关文章:

你感兴趣的文章:

标签云: