现在用access做报表:客户台帐表 客户 销售金额 入金金额 余额
01 10000 5000 5000
01 2000 3000
01 4000 7000
其中 销售金额和入金金额分别从销售表和入金表引入,现在想请教 “余额 ” 的值应该如何做呢?!!
即 余额=余额+销售金额-入金金额 ,有能直接实现此功能的函数么?
用sql或者vba怎么实现呢?
01 10000 5000 5000
01 2000 3000
01 4000 7000
其中 销售金额和入金金额分别从销售表和入金表引入,现在想请教 “余额 ” 的值应该如何做呢?!!
即 余额=余额+销售金额-入金金额 ,有能直接实现此功能的函数么?
用sql或者vba怎么实现呢?
解决方案 »
- 求sql语句
- asp中使用mssql2000存储过程判断查询的记录集为空无返回值,全部分就10分,望高手不吝指导
- 【急】【求】求 mssql对数据库的一些性能监测
- 如何在sql语句中直接修改表中数据格式:
- A表与B表进行相连-100分
- 问个SQL2005的错误日志
- sqlserver查询时提示 服务器: 消息 823,级别 24,状态 2,行 1 连接失败,查一部分数据时不出错,请高手指教,在线等!!!急
- 急急急!哪里能找到英语字典库?
- “企业服务器”总提示“连接失败,请检查SQL Server注册属性”?
- 全接触SQL异常与孤立事务!
- 求!!谁有免费经典的SqlServer2000视频下载
- 继续刚才那个问题
FROM 客户台帐表
客户,
销售金额=ISNULL(RTRIM(销售金额),''),
入金金额=ISNULL(RTRIM(入金金额),''),
余额=SUM(ISNULL(入金金额,0))-SUM(ISNULL(销售金额,0))
from tb
group by 客户
IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
CREATE TABLE tb(客户 varchar(10),销售金额 int,入金金额 int, 余额 int)
go
insert tb SELECT
'01', 10000 , 5000 , 0 UNION ALL SELECT
'01', 0 , 2000 , 0 UNION ALL SELECT
'01', 4000 , 0 , 0
declare @n int
set @n=0update tb set @n=销售金额-入金金额+@n ,余额=@nselect * from tb
客户 销售金额 入金金额 余额
---------- ----------- ----------- -----------
01 10000 5000 5000
01 0 2000 3000
01 4000 0 7000(3 行受影响)
DROP TABLE tb
GO
CREATE TABLE tb(客户 varchar(10),销售金额 int,入金金额 int, 余额 int)
go
insert tb SELECT
'01', 10000 , 5000 , 0 UNION ALL SELECT
'01', 0 , 2000 , 0 UNION ALL SELECT
'01', 4000 , 0 , 0
select identity(int,1,1) as id ,* into #1 from tb
select
客户,
销售金额,
入金金额,
余额=(select SUM(ISNULL(销售金额,0))-SUM(ISNULL(入金金额,0)) from #1 where 客户=k.客户 and ID<=k.id)
from #1 k客户 销售金额 入金金额 余额
---------- ------------ ------------ -----------
01 10000 5000 5000
01 0 2000 3000
01 4000 0 7000
DROP TABLE tb
GO
CREATE TABLE tb(客户 varchar(10),销售金额 int,入金金额 int, 余额 int)
go
insert tb SELECT
'01', 10000 , 5000 , 0 UNION ALL SELECT
'01', 0 , 2000 , 0 UNION ALL SELECT
'01', 4000 , 0 , 0
select identity(int,1,1) as id ,* into #1 from tb
select
客户,
销售金额=case when 销售金额<>0 then RTRIM(销售金额) else '' end,
入金金额=case when 入金金额<>0 then RTRIM(入金金额) else '' end,
余额=(select SUM(ISNULL(销售金额,0))-SUM(ISNULL(入金金额,0)) from #1 where 客户=k.客户 and ID<=k.id)
from #1 k客户 销售金额 入金金额 余额
---------- ------------ ------------ -----------
01 10000 5000 5000
01 2000 3000
01 4000 7000
[客户] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[入金金额] [int] NULL ,
[时间] [datetime] NULL CONSTRAINT [DF_入金表_时间] DEFAULT (getdate())
) ON [PRIMARY]
GOCREATE TABLE [销售表] (
[客户] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[销售金额] [int] NULL ,
[时间] [datetime] NULL CONSTRAINT [DF_销售表_时间] DEFAULT (getdate())
) ON [PRIMARY]
GOCREATE TABLE [客户台帐表] (
[客户] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[销售金额] [int] NULL ,
[入金金额] [int] NULL ,
[余额] [int] NULL ,
[时间] [datetime] NULL
) ON [PRIMARY]
GOINSERT INTO 客户台帐表(客户,销售金额,入金金额,时间) (SELECT ISNULL(a.客户, b.客户) AS 客户, ISNULL(a.销售金额, 0) AS 销售金额, ISNULL(b.入金金额, 0) AS 入金金额, ISNULL(a.时间, b.时间) AS 日期时间
FROM 入金表 b FULL OUTER JOIN 销售表 a ON b.客户 = a.客户 AND DATEDIFF([day], b.时间, a.时间) = 0)
ORDER BY 日期时间Update 客户台帐表 Set 余额=(Select Sum(销售金额)-Sum(入金金额) From 客户台帐表 Where 客户=x.客户 And DATEDIFF([day],时间,x.时间)>=0) From 客户台帐表 xSelect * From 客户台帐表