PostgreSQL·账户表/余额表/消费储蓄表

本文节选自《Netkiller Architect 手札》

4.22.3. 账户表/余额表/消费储蓄表

此表适用于购物车等金钱来往账面等等。

		-- Table: account

-- DROP TABLE account;

CREATE TABLE account
(
  id integer NOT NULL DEFAULT nextval('trade_id_seq'::regclass),
  no character varying(10) NOT NULL, -- 账号
  balance money NOT NULL DEFAULT 0.00, -- 余额
  datetime timestamp without time zone NOT NULL DEFAULT (now())::timestamp(0) without time zone,
  CONSTRAINT account_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE account
  OWNER TO dba;
COMMENT ON COLUMN account.no IS '账号';
COMMENT ON COLUMN account.balance IS '余额';


-- Index: account_no_idx

-- DROP INDEX account_no_idx;

CREATE INDEX account_no_idx
  ON account
  USING btree
  (no COLLATE pg_catalog."default");		

账户结余计算

		select acc.*, (select sum(balance)+acc.balance from account as ac where ac.id < acc.id) as profit from account as acc;

test=# select acc.*, (select sum(balance)+acc.balance from account as ac where ac.id < acc.id) as profit from account as acc;
 id |  no  | balance  |      datetime       | profit
----+------+----------+---------------------+---------
  1 | 1000 |    $0.00 | 2013-10-09 10:51:10 |
  2 | 1000 |   $12.60 | 2013-10-09 10:51:22 |  $12.60
  4 | 1000 |   $16.80 | 2013-10-09 10:51:42 |  $29.40
  5 | 1000 |  $100.00 | 2013-10-09 10:51:49 | $129.40
  6 | 1000 |  $200.00 | 2013-10-09 10:56:35 | $329.40
  7 | 1000 |   $50.45 | 2013-10-09 10:57:23 | $379.85
  8 | 1000 |   $75.50 | 2013-10-09 10:57:31 | $455.35
  9 | 1000 |  -$55.30 | 2013-10-09 10:59:28 | $400.05
 10 | 1000 | -$200.00 | 2013-10-09 10:59:44 | $200.05
(9 rows)				

原文发布于微信公众号 - Netkiller(netkiller-ebook)

原文发表时间:2016-10-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏林欣哲

常见电商项目的数据库表设计(MySQL版)

3.4K5
来自专栏跟着阿笨一起玩NET

SQL Server 2008中的Pivot和UnPivot

今天给新成员讲解PIVOT 和 UNPIVOT示例,顺便整理了一下其用法。这是自SQL Server 2005起提供的新功能。

552
来自专栏抠抠空间

MySQL之多表查询

阅读目录 一 多表联合查询 二 多表连接查询 三 复杂条件多表查询 四 子语句查询 五 其他方式查询 六 SQL逻辑查询语句执行顺序(重点) 七 ...

34712
来自专栏祥子的故事

mysql |那些关于第二大的事

28810
来自专栏数据处理

hive sql练习

2042
来自专栏Netkiller

SNS 数据库设计

本文节选自《Netkiller Architect 手札》 4.21. SNS 数据库设计 这里讲解SNS交友社区的数据库设计与实现 我们要实现下面几个功能 朋...

2854
来自专栏乐沙弥的世界

MySQL SQL更新锁定

版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。

942
来自专栏听雨堂

子分类的合计

        Groupby可以进行分类的合计,如果要进一步进行子分类的合计并在一行显示,关键问题是分类的字段如何被子查询使用。我试了一些办法,觉得这样可行,...

1795
来自专栏你不就像风一样

Mysql字段名与保留字冲突导致的异常解决

682
来自专栏编程之路

学生请假系统设计

需求分析:学生日常请假出入校门,学生向教师请假,教师在手机中提交请假信息,提交后可按请假时间出校门。教师可查看所有学生请假历史,统计分析,同时家长会看到自己孩子...

3185

扫码关注云+社区