在oracle中键入明智的加法和减法

时间:2019-02-09 06:13:33

标签: oracle oracle11g oracle10g

我在商店中有两个表,并且正在使用Oracle。 Image第一个表格描述了我在商店中的交易,有两种交易(MR&SR),MR表示在Store中添加产品,SR表示从我的存储中删除产品。我想要做的是最后关闭存储空间。交易最终数量后,每个产品的数量如图所示。我尝试了许多解决方案,但无法完成。所以我现在不能显示。请帮我解决这个问题。谢谢

1 个答案:

答案 0 :(得分:2)

您可以使用以下case来根据类型减少和增加数量,然后按Name分组并找到从case语句得出的数量总和,以获得所需的结果。

select row_number() over (order by a.Name) as Sl,a.Name, sum(a.qntity) as qntity
from 
(select t2.Name,case when t1.type='MR' then t2.qntity else -(t2.qntity) end as qntity 
from table1 t1,table2 t2 where t1.oid=t2.table01_oid) a 
group by a.Name;

此查询将提供如下结果:

    SL NAME                 QNTITY

     1 Balls                            0
     2 Books                            6
     3 Pencil                          13