PostgreSQL 之数据逐级汇总计算方法
发布时间:2020-12-13 17:01:40 所属栏目:百科 来源:网络整理
导读:-- PostgreSQL 之数据逐级汇总计算方法-- 作者:老农民-- QQ: 46715422-- Email: flyingercn@wo.cn-- 微信: ericliu_77--我们在财务系统和ERP系统中会涉及到按照科目代码逐级累计的计算,--针对PostgreSQL 写了这么个SQL create temp table tb(code VARCHAR
-- PostgreSQL 之数据逐级汇总计算方法 -- 作者:老农民 -- QQ: 46715422 -- Email: flyingercn@wo.cn -- 微信: ericliu_77 --我们在财务系统和ERP系统中会涉及到按照科目代码逐级累计的计算, --针对PostgreSQL 写了这么个SQL create temp table tb(code VARCHAR(13),numb INT); insert into tb values ('0.01',null),('0.01.01',('0.01.01.01',100.00),('0.01.02',('0.01.02.01',('0.01.02.02',('0.01.02.02.01',('0.01.02.02.02',('0.01.03',100.00); select * from tb; code | numb ---------------+------ 0.01 | 0.01.01 | 0.01.01.01 | 100 0.01.02 | 0.01.02.01 | 100 0.01.02.02 | 0.01.02.02.01 | 100 0.01.02.02.02 | 100 0.01.03 | 100 (9 行记录) --下面两种函数写法,结果一致 select *,(select sum(numb) from tb where position(t.code in tb.code)=1) as sum_numb from tb t; select *,(select sum(numb) from tb where strpos(tb.code,t.code)=1) as sum_numb from tb t; code | numb | sum_numb ---------------+------+---------- 0.01 | | 500 0.01.01 | | 100 0.01.01.01 | 100 | 100 0.01.02 | | 300 0.01.02.01 | 100 | 100 0.01.02.02 | | 200 0.01.02.02.01 | 100 | 100 0.01.02.02.02 | 100 | 100 0.01.03 | 100 | 100 (9 行记录) 要买正宗新疆特产,微信扫下面二维码,加老农民咨询购买: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |