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

Netkiller PostgreSQL 手札

 

Mr. Neo Chan, 陈景峰(BG7NYT)

中国广东省深圳市龙华新区民治街道溪山美地
518131
+86 13113668890
+86 755 29812080
<netkiller@msn.com>

文档始创于2012-11-16

版权 2010, 2011, 2012, 2013 Netkiller(Neo Chan). All rights reserved.

版权声明

转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。

文档出处:
http://netkiller.github.io
http://netkiller.sourceforge.net

 

$Date: 2013-04-10 15:03:49 +0800 (Wed, 10 Apr 2013) $

我的系列文档

 

Netkiller Architect 手札 Netkiller Developer 手札 Netkiller PHP 手札 Netkiller Python 手札 Netkiller Testing 手札 Netkiller Cryptography 手札
Netkiller Linux 手札 Netkiller CentOS 手札 Netkiller FreeBSD 手札 Netkiller Security 手札 Netkiller Version 手札 Netkiller Web 手札
Netkiller Monitoring 手札 Netkiller Storage 手札 Netkiller Mail 手札 Netkiller Shell 手札 Netkiller Network 手札 Netkiller Database 手札
Netkiller PostgreSQL 手札 Netkiller MySQL 手札 Netkiller NoSQL 手札 Netkiller LDAP 手札 Netkiller Cisco IOS 手札 Netkiller H3C 手札
Netkiller Multimedia 手札 Netkiller Docbook 手札 Netkiller 开源软件 手札      

 

PostgreSQL 实用实例参考

PostgreSQL 实用实例参考 (PDF)2004-07-20

PostgreSQL 实用实例参考 (BIG5 PDF)2004-07-20

PostgreSQL 实用实例参考 (HTML)2004-07-20

PostgreSQL 实用实例参考 (BIG5 HTML)2004-07-20


 

5.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)
时间: 2024-11-03 06:48:46

账户表/余额表/消费储蓄表的相关文章

关系型数据库设计-用户表和订单表 怎么设计

问题描述 关系型数据库设计-用户表和订单表 怎么设计 如果一个电商用关系型数据库, 假设有一个用户表,有一个订单表,订单表中有一个用户ID 的字段, 那查询某个用户的所有订单时岂不是要遍历整个订单表?没有在互联网公司工作过,不知道是怎么设计的,求解答. 解决方案 数据库可以使用索引,对userid列做了索引,再查询的时候就不需要全表遍历.这和互联网公司没有关系,基本的数据库常识你都没学会.

顺序存储线性表-数据结构顺序表的操作(c++)

问题描述 数据结构顺序表的操作(c++) 求解答谢谢 解决方案 贴出代码而不是截图.发了帖子你难道自己不看下.这么小的字根本看不清. 解决方案二: 什么是线性表?定义:由n(n>=0)个数据类型相同的数据元素组成的有限序列.特点是:在数据元素的非空有限集合中,除第一个元素无直接前驱,最后一个元素无直接后继外,集合中其余每个元素均有唯一的直接前驱和直接后继.什么是顺序表,在这里回答一下.顺序表就是线性表的顺序存储,其特点是:物理顺序与逻辑顺序是相同的,关系线性化,结点顺序存.线性表顺序存储的表示?

[翻译] 聚集索引表 VS 堆表

问题描述      创建一个新表时,一个非常重要的设计原则就是创建还是不创建聚集索引的决定.没有聚集索引的表被称为堆,拥有聚集索引的表叫聚集索引表. 聚集索引表比堆表拥有一些好处(优势),比如聚集索引表是基于聚集索引键顺序存储的,正因为如此,所以通过聚集索引可以快速查找某一行:可以通过重建聚集 索引重新组织数据.当你对表进行INSERT.UPDATE.DELETE等操作时可能会使物理数据变得碎片化,这种碎片化可能会导致你浪费大量数据库存 储空间,因为本来可以存储在一页的数据,需要存储在多个数据页

设计可用的表单:表单的三层模型

设计 当大家在纸上或电脑上填写表单时,为什么经常说'我不太会填表'或者'我最烦填表了'?这里一定是有原因的,其中一定是有一些什么东西让人们有这样的感觉. 在'三层模型'中,一个表单有三种属性:感知(布局).对话(问题和回答).和关系(任务的结构). 用三层模型来分析表单可以让我们更好的分析现存的问题,并且提出让表单更可用的方法. 前言 如果你想做一个可用的表单,第一步就是要了解什么是表单.通过解析表单的属性,改善它的各个方面,之后再合成这些改善了的元素,可以整体提高表单的效果. 这些想法来源于我

--竖表变行表

--竖表变行表--创建表create table A(工号 varchar(20),日期 smalldatetime,时间 varchar(20))--插入测试数据insert into A select '01', '2004-10-01', '07:50'union select '01', '2004-10-01', '11:35'union select '01', '2004-10-01', '14:20'union select '01', '2004-10-02', '08:01'

在.NET中,将竖表变横表(支持固定列)

竖表变横表(支持固定列) 根据LoveCherry的竖变横方法改进而来        public DataTable MakeData(DataTable dt,int iColumnSize,int[] iColumnID) //iColumnsize:重复列数 iColumnID 需要横向排列的列的序号数组        {               int ColumnCount=iColumnID.Length;            int totalRows=dt.Rows.Co

SYBAES ASE 12.0 上一个横表转纵表的简单例子

SYBAES ASE 12.0 上一个横表转纵表的简单例子   千千如梦 2002年10月   /* create table ... */create table #dest_table(                         Flag char(1),                         A int null,                         B int null,                         C int null,         

如何查看Oracle数据表的建表语句

oracle|数据|语句 如何查看Oracle数据表的建表语句? 系统环境:  1.操作系统:Windows 2000 Server,机器内存128M 2.数据库: Oracle 8i R2 (8.1.6) for NT 企业版 3.安装路径:C:\ORACLE 实现步骤:  1.用EXP工具导出 2.导入时使用show=y选项.log选项 3.查看.编辑日志文件 具体实例:  1.调出SQL*Plus conn system/manager grant connect,resource to

用自訂函數實現功能-------根據指定表名得到表的結構

               函數功能:根據表名得到表的列名和類型   當我們在編寫sql程序時,多少都會用到一些系統內建的函數,如right(),datalength()等,但是,當我們在工程開發時,如果希望能實現一些符合特殊的要求的處理的話,就需要自已編寫函數,如下面的例子是一個得到表的結構的函數 函數的分類: 1.純量函數:此類函數隻傳導回單一的數據值 2.傳回數據集的函數:傳回一個Table型別的數據集,分為以下兩類:      2.1 行內數據集函數:函數的內容是一個Select 語句