select qi.qtyonhand + qd.delqty as teste,
qi.itemname
from qitem qi, qdel qd
where qi.itemname = qd.itemname
and qd.deptname = 'recreation';
select qi.qtyonhand - qs.saleqty as teste,
qi.itemname
from qsale qs, qitem qi
where qi.itemname = qs.itemname
and qs.deptname = 'recreation';
我尝试通过添加qitem
表格的数量并从qdel
表格的数量中减去来更新qsale
数量计数。我试图将它全部放在一列中,但是qdel
表中可能没有部门名称为"recreation"
的项目,所以当我尝试将select语句放入一个时,它遗漏了qitems
中的一些项目。
答案 0 :(得分:1)
select qi.qtyonhand + NVL(qd.delqty,0) + NVL(qa.saleqty,0) as teste, qi.itemname
from qitem qi
left outer join (select * from qdel where deptname = 'recreation') qd
on qi.itemname = qd.itemname
left outer join (select * from qsale where deptname = 'recreation') qs
on qi.itemname = qs.itemname
where (qd.delqty is not null or qs.saleqty is not null)
(可能有一种更简单的方法,特别是如果qitem
也有deptname
列。)