• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

如何使用 SQL Server 数据库查询累计值

发布: 2009-10-23 09:05 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 40次 | 进入软件测试论坛讨论

领测软件测试网

如何使用 SQL Server 数据库查询累计值  SQL Server 数据库

键字:SQL Server 数据库 累计值

  有这样一个要求,它要创建一个SQL Server查询,其中包括基于事件时刻的累计值。典型的例子就是一个银行账户,因为你每一次都是在不同的时间去存钱和取钱。对任意一个账户来说,在某个时间点都要算出它的借(存款)和贷(取款)之和。每一笔交易之后,你都想知道当前的余额。列表A创建了这样一个表格的简单的例子。

  CREATETABLE [dbo].[BankAccount]

  ([TransactionID] [int] IDENTITY(1,1)NOTNULL,

  [TransactionDateTime] [datetime] NOTNULLCONSTRAINT

  [DF_BankAccount_TransactionDateTime] DEFAULT(getdate()),

  [Amount] [money] NOTNULLCONSTRAINT [DF_BankAccount_Amount] DEFAULT((0)),

  [TransactionType] [char](1)COLLATE SQL_Latin1_General_CP1_CI_AS NOTNULL,

  [AccountNumber] [varchar](50)COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

  CONSTRAINT [PK_BankAccount] PRIMARYKEYCLUSTERED

  (

  [TransactionID] ASC

  )WITH(PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF)ON [PRIMARY]

  )ON [PRIMARY]

  列表A

  下面是一些示例行:

  1 2006-11-03 02:33:42.34010000.00

  2 2006-11-03 02:34:50.467-500.00

  3 2006-11-03 02:35:04.857250.00

  4 2006-11-03 02:42:19.763-124.25

  因为日期是缺省设定的,你要做的就是加入一些金额。例子中为了简单起见,假设只有一个银行账户(为了更符合实际情况,可以添加一个BankAccountNumber列)。

  现在你就能够创建一个包括了当前余额的查询。因为你已经在同一列中用正负数值记录了存款和取款值,所以列中的累计值是很容易算出的。你要得到当前的余额,就要计算出以前所有交易的总值,然后将这个值和当前的交易相加。列表B中的查询实现了这一点。

  

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: server Server SERVER sql SQL Sql 查询 数据库

21/212>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网