oracle中怎么如何把两张表中查询到的数据求和,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中怎么如何把两张表中查询到的数据求和,相关的知识,希望对你有一定的参考价值。

如a表inp的数据,item_code (药品代码),spec(规格),units(单位),firm_id(厂家),amount(用药量),price(单价);
b表outp的数据,item_code (药品代码),spec(规格),units(单位),firm_id(厂家),amount(用药量),price(单价);这几个字段,a表b表中是一样的,先查询a表得:(对应上面的字段顺序)
010101,100mg,支,上海,25,10,
010101,100mg,支,北京,30,11.5,
010102,100ml,瓶,上海,40,5.8,
010103,250ml,支, 四川,70,10,
010104,40mg,片, 云南,700,1.5,
查询b表得:(对应上面的字段顺序)
010101,100mg,支,上海,70,10,
010101,100mg,支,北京,15,11.5,
010102,100ml,瓶,天津,26,5.8,
010103,250ml,支, 四川,10,10,
010105,40mg, 片, 贵州,210,2,
需要得到的结果是:
010101,100mg,支,上海,95,10,
010101,100mg,支,北京,45,11.5,
010102,100ml,瓶,上海,40,5.8,
010102,100ml,瓶,天津,26,5.8,
010103,250ml,支, 四川,80,10,
010104,40mg,片, 云南,700,1.5,
010105,40mg, 片, 贵州,210,2,
即这两张表中item_code (药品代码),spec(规格),units(单位),firm_id(厂家)是主键,只要两张表中的这几个字段都相同,即可以把二者的数量求和。其余不符合条件的只能各自分开显示。

参考技术A select item_code ,spec,units,firm_id,sum(amount),sum(price) from
(select * from a
union all
select * from b)
group by item_code ,spec,units,firm_id本回答被提问者采纳

Oracle两张表关联中间表查询,那张关联到数据就显示,关联不到就负空值

两张表加上一张中间表,是三张表,两张表靠中间表来关联

参考技术A SELECT A.*, B.COL2 FROM A LEFT JOIN B ON A.COL = B.COL
就可以了,用左连接追问

三张表,你这个例子没有了中间表

参考技术B select * from a,(select * from b left join c on b.id = c.id) t where a.id = t.id 参考技术C 主表外连接另一个表。

以上是关于oracle中怎么如何把两张表中查询到的数据求和,的主要内容,如果未能解决你的问题,请参考以下文章

在SQL语句中,如何把两张表的数据按时间排序查询?

怎么把两张表的数据插入到一张表中

Oracle数据库,关于关联两张表更新问题

sql怎么把两张表合并成一张

THINKPHP怎么查询一张表中某个字段数据重复次数最多的前几名!

Oracle两张表关联中间表查询,那张关联到数据就显示,关联不到就负空值