关于表之间数据查询的问题,急!!!!
A表------>B表-------->C表
要求:通过A.P查找B.P ---> 再通过B.K查找C.K ---->按B.k等于C.K查找出所有记录总对所有NUM进行汇总
A表结构B表结构C表结构
__________ __________ _____________
|__NO_|__P_||__P_|__K_| |_K__|__NUM__|
|_____|____| |____|____| |_____|______|
像这样以A表的一个字段去查询B表的一个字段再以B表所查出的记录中的某个字段值
去查询C表的中的记录,并对查出的所有记录的某列进行汇总.这样的查询语句该怎么写
如何写效率才高???
[385 byte] By [
1234567] at [2007-8-15 11:13:45]

# 1 Re: 关于表之间数据查询的问题,急!!!!
上面的显示有点乱了再说明一下
假设:A表有NO,P两个字段 B表有P,K两个字段 C表有K,NUM两个字段
浮云 at 2007-4-9 23:37:29 >

# 2 Re: 关于表之间数据查询的问题,急!!!!
有点迷糊
select sum(c.num) from a,b,c
where a.p=b.p
and b.k=c.k
对不
# 3 Re: 关于表之间数据查询的问题,急!!!!
不对吧,因为select * from a,b where a.p=b.p 查询的结果
有可能为多条记录
并且A表中的记录我全部要.
我A表中的记录都要显示,而通过a.p=b.p and b.k=c.k没找到
c.num时,c.num的值显示为0
比如按这安成生成一个新表为
a.p c.num
S 5
V 0
唉,不能发图片这里说的不是很清楚
笨老鼠 at 2007-4-9 23:37:43 >

# 4 Re: 关于表之间数据查询的问题,急!!!!
试一下
select d.p,nvl(c.num,0) from c,(select a.p,b.k from a,b where a.p(+)=b.p) d where d.k(+)=c.k
Canty at 2007-4-9 23:37:49 >
