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