有如下表
客户代码 客户名称 单据日期 本期应收 本期应付
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#进行数据库编程时,尤其是在处理主从表的关系时,常常需要一次性更新多个表的多条记录,并确保这些操作的原子性,即要么全部成功,要么全部失败。在这种情况下,事务处理是至关重要的。事务提供了对数据库操作的...
在数据库管理中,经常需要对数据进行更新操作来确保数据的准确性和时效性。有时候,这种更新不仅限于同一张表内,还可能涉及到跨表的操作。例如,根据一张表中的某些条件来更新另一张表中的数据。本文将详细介绍如何...
本篇文章将详细介绍Oracle 11g R2中的几个核心概念:数据库、数据表、记录、字段,以及如何进行数据表的基本操作如创建(create)、修改(alter)和删除(drop)。 #### 二、数据库(Database) 数据库(Database)是一组...
- 内部表:这是一种在内存中操作的数据结构,不直接对应数据库表,但可以与透明表进行交互。 - 查找表:用于提供固定值选择,通常与主键关联,用于快速查找和验证输入数据。 - 描述表:存储字段描述信息,如字段...
然而,在实际操作中,数据库管理员或开发者可能会不小心删除了重要数据,这时候如何恢复这些数据成了一个重要的问题。本文将介绍如何查看 Oracle 表的历史记录和恢复删除的数据。 一、查看表操作历史记录 要查看表...
在IT领域,尤其是在数据库管理和权限控制方面,"关于给用户分配资源(数据库表)中某条记录的操作权限问题-行控制"是一个常见的挑战。行控制,也称为行级权限或行级安全,是指允许管理员精确地指定哪些用户或角色可以...
实验中需要对Autoparts、category、Client、Clientkind、shoppingcart、Order、order_has_Autoparts和Comment表的记录进行修改,条件和修改后的数据由实验者设定。Update语句可以精确地定位并修改满足条件的记录,...
在IT行业中,数据库管理系统是核心组成部分,而MongoDB作为一个流行的NoSQL数据库,广泛应用于存储非结构化或半结构...同时,根据业务需求,可能还需要对拦截器进行扩展,比如设置过滤规则,只记录特定表或字段的变更。
单记录插入是指向表中插入一条记录,而批量插入是指向表中插入多条记录。我们将使用 Insert 语句分别向 Autoparts、category、Client、Clientkind、shoppingcart、Order、Order_has_Autoparts、Comment 表中插入数据...
在VB(Visual Basic)编程中,向数据表中插入数据是一项基本操作,通常涉及与数据库的交互。在本教程中,我们将深入探讨如何利用INSERT语句来实现这一目标。INSERT语句是SQL语言的一部分,用于在数据库表中创建新的...
本函数只对listview中的第一列数据做处理,对数据库中表进行快速的拖放,即可以选择单个记录进行拖放,也可以多条记录同时拖放,具体操作步骤是选中一条记录后,按住键盘的Ctrl键,即可对数据进行多选,选中记录后,...
在VB(Visual Basic)编程环境中,我们经常需要与数据库进行交互,这包括读取、插入、更新和删除数据。在本教程中,我们将专注于“利用UPDATE语句批量更新数据表中的数据”这一主题。UPDATE语句是SQL语言的一个重要...
综上所述,K3V12数据表是金蝶K3系统中的关键组件,它构建了企业的数据基础架构,支撑了各项业务流程的顺畅运行。理解和掌握K3V12数据表的结构和操作,对于企业信息化管理和决策支持具有重要意义。通过对数据库的深入...
实验中,学生将学习使用 Insert 语句进行数据插入、Delete 语句删除数据、TRUNCATE TABLE 语句清空表数据、Update 语句修改数据。 1. 数据插入操作 在实验中,学生将学习使用 Insert 语句插入数据,包括单记录插入...
kettle合并记录处理同表数据更新等操作.doc
例如,【格式】菜单在数据表视图中会增加一些关于记录格式调整的选项,而【记录】菜单则包含如数据项、导航等与记录操作相关的功能。工具栏上也会新增一些功能按钮,如增加新记录、删除记录等,便于用户快速执行操作...
在这个特定的问题中,用户遇到了一个常见但棘手的异常情况:在主从表中,当尝试对已有主表记录进行从表的二次新增记录时,新添加的记录不会立即显示,只有在刷新界面后才会出现。 这个问题可能是由以下几个原因导致...
在实践中,根据具体需求灵活运用这些语句,可以实现对SQL Server表中数据的高效管理和操作。掌握这些基础操作对于任何IT专业人员来说都至关重要,因为它们是数据库管理、数据分析和应用程序开发的基础。
在实际工作中,我们通常需要对这些数据表进行查询、更新、删除等操作,以响应企业的各种业务需求。比如,通过编写SQL语句查询BKPF表来获取特定日期范围内的会计凭证信息;或者修改EKBZ表中某些字段的值来调整库存...