Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何显示2个仓库中的产品总数?_Database_Oracle - Fatal编程技术网

Database 如何显示2个仓库中的产品总数?

Database 如何显示2个仓库中的产品总数?,database,oracle,Database,Oracle,我有这个数据库: 我有一个问题,如果1号仓库中的产品在2号仓库中没有,反之亦然,如何显示2号仓库中的产品总数 我试过这样做 选择仓库1.良好计数+仓库2.良好计数 从仓库1到仓库2 将货物加入仓库1.good_id=goods.id 仓库2.good_id=goods.id; 但是它不起作用要么你误解了老师的要求,要么你的老师问错了问题 应该只有一个带有附加列的仓库表,例如仓库类型ID,其值将是远程的或附近的,或下一个值,可能对仓库类型表进行外键约束 那你就干脆 select t.warehou

我有这个数据库:

我有一个问题,如果1号仓库中的产品在2号仓库中没有,反之亦然,如何显示2号仓库中的产品总数

我试过这样做

选择仓库1.良好计数+仓库2.良好计数 从仓库1到仓库2 将货物加入仓库1.good_id=goods.id 仓库2.good_id=goods.id;
但是它不起作用

要么你误解了老师的要求,要么你的老师问错了问题

应该只有一个带有附加列的仓库表,例如仓库类型ID,其值将是远程的或附近的,或下一个值,可能对仓库类型表进行外键约束

那你就干脆

select t.warehouse_type_name,
       sum(w.good_count) summary
from warehouse w join warehouse_type t on t.warehouse_type_id = w.warehouse_type_id
group by t.warehouse_type_name;
我读了你写的评论。这些仓库在物理上是不同的,一个在城市里,一个在郊区,这一事实并不能改变数据模型是错误的这一事实。它们所代表的数据应该包含在同一个表中,正如我前面解释的那样,这是一个单独的表

因为,当公司在其他城市建造另一个仓库时,你们会怎么做?添加另一个表?错了

无论如何,如果您坚持这样做,您可能会在这个错误的数据模型中寻找这样的东西:

select g.name,
  sum(a.good_count + b.good_count) total_count
from goods g left join warehouse1 a on a.good_id = g.id
             left join warehouse2 b on b.good_id = g.id
group by g.name

为什么要为仓库创建单独的表?这不是一个好的设计。当你必须添加仓库3时会发生什么?这是我老师的请求,仓库1是附近的仓库,仓库2是远程仓库@旧程序如图所示,我需要两个单独的仓库,同一个产品,可能1号仓库的数量为10,2号仓库的数量为20,我需要将共享相同产品id的2个仓库的产品相加结果为30。我看到了图,我说我认为这是错误的。在作业中,老师解释说,1号仓库在城市,2号仓库将更大,离城市更远,从1号仓库获得的产品将优先,如果产品不再可用,将从2号仓库移到省,要求从2个仓库总共获得1个产品,我无法连接两个仓库,我可以在1号仓库中找到1个产品的数量,但它将一个接一个地加起来。仓库中的产品2我编辑了答案并添加了更多文本。看一看