某业务系统用来实现资金进出的纪录,业务系统的管理数据库的部分关系模式如下所示:
基础信息表(KMBM,KMMC,KMSX,CLX)
历史资金发生余额表(KMBM,YE)
近期资金明细发生纪录表(ID,ID2,KMBM,LRLC,FSE)
表一:
KMBM KMMC KMSX ZCLX
101 银行存款 银行存款 资产类
10101 北京存款 银行存款 资产类
10102 上海存款 银行存款 资产类
201 预收账款 预收账款 负债类
202 其他应付款 其他应付款 负债类
表二:
KMBM YE
101 100000000
10101 66000000
10102 34000000
201 0
202 100000000
表三:
ID ID2 KMBM LRLC FSE
1 1 10101 + 50000
1 2 20101 + 50000
2 1 202 - 3200000
2 2 10101 - 3200000
表三中(LRLC字段值等于“+”标示流入,:LRLC字段值等于“-”标示流出。[1-1]:
请根据上述三个数据表的字段和数据纪录反映出的结果,按照个人理解标示出各表的主外键信息。并说明理由.[1-2]:
请通过编写一条SQL语句查询出表一中的KMBM字段值对应的最新余额信息,以不相同的明细KMBM为单位进行统计,统计的结果中要包含表一中的所有字段信息和计算的最新余额。(最新余额=历史资金余额+近期资金流入-近期资金流出)[1-3]
根据下面的查询结果,编写一条SQL语句实现输出结果同下面的查询结果,并分析原设计着输出此结果的设计思想。
KMBM KMMC YE
――――――――――――――――――
101 银行存款 96850000
201 预收账款 50000
202 其他应付款 96800000
基础信息表(KMBM,KMMC,KMSX,CLX)
历史资金发生余额表(KMBM,YE)
近期资金明细发生纪录表(ID,ID2,KMBM,LRLC,FSE)
表一:
KMBM KMMC KMSX ZCLX
101 银行存款 银行存款 资产类
10101 北京存款 银行存款 资产类
10102 上海存款 银行存款 资产类
201 预收账款 预收账款 负债类
202 其他应付款 其他应付款 负债类
表二:
KMBM YE
101 100000000
10101 66000000
10102 34000000
201 0
202 100000000
表三:
ID ID2 KMBM LRLC FSE
1 1 10101 + 50000
1 2 20101 + 50000
2 1 202 - 3200000
2 2 10101 - 3200000
表三中(LRLC字段值等于“+”标示流入,:LRLC字段值等于“-”标示流出。[1-1]:
请根据上述三个数据表的字段和数据纪录反映出的结果,按照个人理解标示出各表的主外键信息。并说明理由.[1-2]:
请通过编写一条SQL语句查询出表一中的KMBM字段值对应的最新余额信息,以不相同的明细KMBM为单位进行统计,统计的结果中要包含表一中的所有字段信息和计算的最新余额。(最新余额=历史资金余额+近期资金流入-近期资金流出)[1-3]
根据下面的查询结果,编写一条SQL语句实现输出结果同下面的查询结果,并分析原设计着输出此结果的设计思想。
KMBM KMMC YE
――――――――――――――――――
101 银行存款 96850000
201 预收账款 50000
202 其他应付款 96800000
解决方案 »
- Oracle数据页面中csc(last block cleanout scn)的作用?
- 一个很简单的sqlplus的语句,请问各位大侠是什么意思,谁能给我细解释一下啊,多谢!
- 急救:sql2000的存储过程怎么转化到Oracle?
- 安装Oracle时出现问题,请教各位高手。
- c#连接的是oracle92的数据库出现的问题!!!!!!!!!!
- 关于数组的一个问题。
- 关于oralce9.2.0.1.0链接问题???
- oracle 实时响应问题?(两个月没解决)
- 今天在Intel C366上装上了Oracle817R3,爽啊!
- 谁有pro*c方面的书,进来看一下!!!!
- 关于orcale的查询问题
- 下面这个关于merge的sql语句执行好久都没反应,不知道那里错了
select c.*,temp2
from
(
select a.KMBM
,sum(temp1) temp2
from
(
select KMBM, sum(YE) temp1
from 表二
group by KMBM
union all
select KMBM,
sum(case
when lrlc = '-' then
to_number('-' || fse)
else
fse
end) temp1 from 表三 group by KMBM
) a
group by a.KMBM
) b, 表一 c
where b.KMBM=c.KMBM;
[1-3]
select c.KMBM,c.KMMC,temp2
from
(
select a.id
,sum(temp1) temp2
from
(
select substr(KMBM,1,3) id, sum(YE) temp1
from 表二
group by substr(KMBM,1,3)
union all
select substr(KMBM,1,3) id,
sum(case
when lrlc = '-' then
to_number('-' || fse)
else
fse
end) temp1 from 表三 group by substr(KMBM,1,3)
) a
group by a.id
) b, 表一 c
where b.id=c.KMBM;
没测试 你自己试试