`
isiqi
  • 浏览: 16555177 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

数据表中,对上条记录进行操作

SQL 
阅读更多

有如下表

客户代码 客户名称 单据日期 本期应收 本期应付
01 北京 2004-1-1 1000 0
01 北京 2004-2-1 100 0
01 北京 2004-3-1 0 200
01 北京 2004-4-1 500 200
01 北京 2004-5-1 500 0

02 上海 2004-1-1 0 2000
02 上海 2004-2-1 100 0
02 上海 2004-3-1 0 200
02 上海 2004-4-1 500 200
02 上海 2004-5-1 500 0

我想要得到如下效果:其中(期末余额=上期期末余额+本期应收-本期应付)

客户代码 客户名称 单据日期 本期应收 本期应付 期末余额
01 北京 2004-1-1 1000 0 1000
01 北京 2004-2-1 100 0 1100
01 北京 2004-3-1 0 200 900
01 北京 2004-4-1 500 200 1200
01 北京 2004-5-1 500 0 1700

02 上海 2004-1-1 0 2000 -2000
02 上海 2004-2-1 100 0 -1900
02 上海 2004-3-1 0 200 -2100
02 上海 2004-4-1 500 200 -1800
02 上海 2004-5-1 500 0 -1300

设计如下:

create table 表(客户代码 varchar(10),客户名称 varchar(10),单据日期 datetime,本期应收 int,本期应付 int)
insert 表 select '01 ', '北京 ', '2004-1-1 ',1000,0
union all select '01 ', '北京 ', '2004-2-1 ',100 ,0
union all select '01 ', '北京 ', '2004-3-1 ',0 ,200
union all select '01 ', '北京 ', '2004-4-1 ',500 ,200
union all select '01 ', '北京 ', '2004-5-1 ',500 ,0
union all select '02 ', '上海 ', '2004-1-1 ',0 ,2000
union all select '02 ', '上海 ', '2004-2-1 ',100 ,0
union all select '02 ', '上海 ', '2004-3-1 ',0 ,200
union all select '02 ', '上海 ', '2004-4-1 ',500 ,200
union all select '02 ', '上海 ', '2004-5-1 ',500 ,0

select *,期末余额=(select sum(本期应收-本期应付) from 表 where 客户代码=a.客户代码 and 单据日期 <=a.单据日期)
from 表 a

<!--StartFragment -->
现在我有一个表,如下
ID 日期   上月累计  
1   2010-5 50
1 2010-6 55
1 2010-7 60
2 2010-6 50
2 2010-7 40
想得到以下效果
ID 日期   上月累计  总计
1   2010-5 50    50  
1 2010-6 55    105
1 2010-7 60    165
2 2010-6 50    50
2 2010-7 40    90
SQL语句如下
create table t11
(
ID int null,
日期 DATETIME NULL,
上月累计 INT NULL
)

INSERT INTO t11
select 1,2010-5, 50
union
select 1,2010-6,55
union
select 1 ,2010-7 ,60
union
select 2 ,2010-6, 50
union
select 2 ,2010-7 ,40
select *,总计=(select sum(上月累计) from t11 where t11.ID=a.ID AND t11.日期<=a.日期 )
from t11 a
结果如下:
<!--StartFragment -->
分享到:
评论

相关推荐

    c#向数据表中插入多条记录

    在C#进行数据库编程时,尤其是在处理主从表的关系时,常常需要一次性更新多个表的多条记录,并确保这些操作的原子性,即要么全部成功,要么全部失败。在这种情况下,事务处理是至关重要的。事务提供了对数据库操作的...

    用一条SQL语句将数据表中某列更新到另一个数据表里

    在数据库管理中,经常需要对数据进行更新操作来确保数据的准确性和时效性。有时候,这种更新不仅限于同一张表内,还可能涉及到跨表的操作。例如,根据一张表中的某些条件来更新另一张表中的数据。本文将详细介绍如何...

    oracle_11gR2_06 介绍 数据库,数据表,记录,字段,和对数据表的操作(create,alter,drop)

    本篇文章将详细介绍Oracle 11g R2中的几个核心概念:数据库、数据表、记录、字段,以及如何进行数据表的基本操作如创建(create)、修改(alter)和删除(drop)。 #### 二、数据库(Database) 数据库(Database)是一组...

    c# 取上一条记录,下一条记录

    在C#编程中,操作数据库记录时,我们经常需要获取数据表中的上一条或下一条记录,这在数据浏览、编辑或对比时非常常见。本文将深入探讨如何使用C#实现这一功能,主要关注数据库查询和数据游标的概念。 首先,我们...

    关于给用户分配资源(数据库表)中某条记录的操作权限问题-行控制

    在IT领域,尤其是在数据库管理和权限控制方面,"关于给用户分配资源(数据库表)中某条记录的操作权限问题-行控制"是一个常见的挑战。行控制,也称为行级权限或行级安全,是指允许管理员精确地指定哪些用户或角色可以...

    实验训练3数据增删改操作.docx

    实验中需要对Autoparts、category、Client、Clientkind、shoppingcart、Order、order_has_Autoparts和Comment表的记录进行修改,条件和修改后的数据由实验者设定。Update语句可以精确地定位并修改满足条件的记录,...

    Mybatis拦截器记录数据更新历史记录到MongoDB

    在IT行业中,数据库管理系统是核心组成部分,而MongoDB作为一个流行的NoSQL数据库,广泛应用于存储非结构化或半结构...同时,根据业务需求,可能还需要对拦截器进行扩展,比如设置过滤规则,只记录特定表或字段的变更。

    实验训练3 数据增删改操作

    单记录插入是指向表中插入一条记录,而批量插入是指向表中插入多条记录。我们将使用 Insert 语句分别向 Autoparts、category、Client、Clientkind、shoppingcart、Order、Order_has_Autoparts、Comment 表中插入数据...

    VB 利用UPDATE语句批量更新数据表中的数据

    在VB(Visual Basic)编程环境中,我们经常需要与数据库进行交互,这包括读取、插入、更新和删除数据。在本教程中,我们将专注于“利用UPDATE语句批量更新数据表中的数据”这一主题。UPDATE语句是SQL语言的一个重要...

    编写一个拖拽函数,实现对数据快速操作

    本函数只对listview中的第一列数据做处理,对数据库中表进行快速的拖放,即可以选择单个记录进行拖放,也可以多条记录同时拖放,具体操作步骤是选中一条记录后,按住键盘的Ctrl键,即可对数据进行多选,选中记录后,...

    理论数据表基本操作(共41张PPT).pptx

    综上所述,理论数据表的基本操作涵盖了数据表结构的查看、编辑、复制以及数据记录的管理和操作,这些都是数据库管理的基础,对于数据分析和信息管理至关重要。通过熟练掌握这些命令,可以更有效地管理和维护数据,...

    kettle合并记录处理同表数据更新等操作

    kettle合并记录处理同表数据更新等操作.doc

    在数据表视图中进行数据编辑PPT学习教案.pptx

    例如,【格式】菜单在数据表视图中会增加一些关于记录格式调整的选项,而【记录】菜单则包含如数据项、导航等与记录操作相关的功能。工具栏上也会新增一些功能按钮,如增加新记录、删除记录等,便于用户快速执行操作...

    京东评论原始数据集(大约1万条记录)

    本数据集包含了大约1万条针对MacBook的评论,为无标注的数据,适合进行文本聚类分析,以揭示用户对MacBook的各种观点和偏好。 首先,我们要理解数据集的构成。根据提供的压缩包子文件的文件名称列表,我们可以看到...

    mysql 一条语句删除多表数据

    在MySQL数据库管理中,高效地删除多表数据是优化数据库操作的重要方面,特别是在处理大量关联数据时。"mysql 一条语句删除多表" 的主题就是关于如何通过单个SQL语句来删除关联的多个表的数据,从而节省数据库连接...

    cxGrid主从表从表二次新增记录不显示

    在这个特定的问题中,用户遇到了一个常见但棘手的异常情况:在主从表中,当尝试对已有主表记录进行从表的二次新增记录时,新添加的记录不会立即显示,只有在刷新界面后才会出现。 这个问题可能是由以下几个原因导致...

    如何使用SQLServer表中数据操作.pptx

    在实践中,根据具体需求灵活运用这些语句,可以实现对SQL Server表中数据的高效管理和操作。掌握这些基础操作对于任何IT专业人员来说都至关重要,因为它们是数据库管理、数据分析和应用程序开发的基础。

    SAP常用后台数据表大全(FI-CO-MM-SD-PP等).pdf

    在实际工作中,我们通常需要对这些数据表进行查询、更新、删除等操作,以响应企业的各种业务需求。比如,通过编写SQL语句查询BKPF表来获取特定日期范围内的会计凭证信息;或者修改EKBZ表中某些字段的值来调整库存...

    VB 利用DELETE语句删除数据表中的数据

    在VB(Visual Basic)编程环境中,DELETE语句是用于从数据库中的数据表中删除特定记录的一种方法。在处理数据操作时,了解如何有效地使用DELETE语句对于任何数据库应用程序的开发都至关重要。这篇教程将深入探讨如何...

Global site tag (gtag.js) - Google Analytics