您当前位置:优侠库 > 资讯攻略 >
来源:未知
2022-01-01 11:17:09 浏览: 分类:资讯攻略

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

有这样一个要求,它应该创建一个sql server查询,其中包括基于事件时间的累积值。一个典型的例子就是银行账户,因为你每次存取款的时间都不一样。对于任何一个账户,都应该在某个时间点计算其借方(存款)和贷方(取款)的总和。每次交易后,你都想知道当前的余额。列表创建了这样一个表的简单示例。

以下是引用的内容:
创建表[dbo]。[银行帐户]
([事务id] [int] identity (1,1) not null,
[事务日期时间][日期时间]not NULL CONSTRAINT
[DF _ bank account _事务日期时间] DEFAULT(getdate()),
[金额][货币]not NULL CONSTRAINT[DF _ bank account _ Amount]DEFAULT((0)),
[事务类型][char](1)COLLATE SQL _ Latin1 _ General _ CP1 _ CI _ AS not NULL,

列表a

以下是一些示例行:

以下为引用内容:
1 2006-11-03 02:33:42.34010000.00
2 2006-11-03 02:34:50.467-500.00
3 2006。

因为日期是默认设置的,所以您只需添加一些金额。在示例中,为了简单起见,假设只有一个银行帐户(可以添加一个BankAccountNumber列以使其更加真实)。

现在,您可以创建一个包含当前余额的查询。因为你已经在同一列中记录了具有正值和负值的存取值,所以该列中的累积值很容易计算。要获得当前余额,您必须计算以前所有交易的总值,然后将该值添加到当前交易中。列表B中的查询实现了这一点。

以下是引用的内容:select
交易id,
交易日期时间,
金额,

(选择总和(金额)

从dbo.bankaccount作为D1

其中D1.transactiondatetime & lt= D0.transactiondatetime)作为余额

从dbo.bankaccount作为D0

名单b

通过这种方式,可以获得以下结果集:

以下为引用内容:
1 2006-11-03 02:33:42.3401000.00 10000.00
2 2006-11-03 02:34:50.467-500.00 9500.00。

正如这个例子所展示的,只要你理解了需求,你就可以很容易地建立累积值。所示示例假设表中只包含一个帐户,但是处理多个帐户也非常简单。添加一个BankAccountNumber列和一个指定利息金额的WHERE谓词。

您也可以反过来使用此示例,例如在库存计算中创建不同的运行。你从1000的库存开始,然后减去各种费用和收据。

这样的查询有两个优点:

●不需要存储结果。用账号或者外键操作的时候,执行起来可以快如闪电。

●你用一个标签结束交易,可以逐行检查。如果出现问题,您可以隔离导致问题的事务。

关键词:查询,积累,数据库,使用

优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。

本文链接:http://www.123down.cn/gonglue/227234.html

攻略资讯
安卓软件
安卓游戏