首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单个查询ORACLE中的多个操作

单个查询ORACLE中的多个操作
EN

Stack Overflow用户
提问于 2014-10-16 17:31:16
回答 1查看 188关注 0票数 0

我有三个数据库通过DBLink远程连接,我想在其中三个数据库中创建一个记录。这个问题的动力在于,有一家公司拥有3家零售店,可以在其中销售其他商品。item1只在retailstore1中找到,item2只在retailstore2中找到等等。然而,一家商店可以出售目前还没有找到的商品,所以它需要向其他商店提出要求,以检查库存是否足够。每次一家商店销售时,它都会在日志中创建一个记录,但前提是它成功了。

这些是示例中使用的表。

  • 零售商店#1:商品(A int),LOG(a int,b int,c int)
  • 零售商店#2:商品(B int),日志(a int,b int,c int)
  • 零售商店#3:商品(C int),日志(a int,b int,c int)

现在,我想在在这三个存储中记录日志之前检查库存中是否有足够的项目,但是这必须在一个查询或存储过程中完成,或者执行必要的步骤来实现。限制是,数据库需要打开一次,执行,关闭和不再。

EN

回答 1

Stack Overflow用户

发布于 2014-10-17 02:20:21

听起来,您想要的是一个查询,它显示了哪个存储了该项目,所以当办事员进行查找时,它会显示项目、存储和左边的qty。有一种方法可以使用联合,这样,如果在某个过程中传入项目号(而不知道它在哪里),您将查询如下:(p_item in NUMBER) --这是与所需项目号一起传入的参数。

代码语言:javascript
复制
select item1, store1, qty1, 0 item2, 0 store2, 0 qty2, 0 item3, 0 store3, 0 qty3
from store1
where item1 = p_item
union all
select 0, 0, 0, item2, store2, qty2, 0, 0, 0 
from store2
where item2 = p_item
union all
select 0, 0, 0, 0, 0, 0, item3, store3, qty3 
from store3
where item3 = p_item

这应该只返回1行,其中包含除0以外的值,并将告诉您它在哪里。

然后,更新可以使用if语句或case语句来更新适当的存储区,其基础是在哪个项/存储组合中找到它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26410460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档