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

PostgreSQL 之数据逐级汇总计算方法,第1张

概述-- PostgreSQL 之数据逐级汇总计算方法-- 作者:老农民-- QQ: 46715422-- Email: [email protected] 微信: ericliu_77--我们在财务系统和ERP系统中会涉及到按照科目代码逐级累计的计算,--针对PostgreSQL 写了这么个SQL create temp table tb(code VARCHAR(13), numb
-- Postgresql 之数据逐级汇总计算方法-- 作者:老农民-- QQ: 46715422-- Email: [email protected] 微信: 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 行记录)

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

总结

以上是内存溢出为你收集整理的PostgreSQL 之数据逐级汇总计算方法全部内容,希望文章能够帮你解决PostgreSQL 之数据逐级汇总计算方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1173847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存