PostgreSQL 之数据逐级汇总计算方法

-- 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 行记录)

要买正宗新疆特产,微信扫下面二维码,加老农民咨询购买:

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...