日期:2014-05-17  浏览次数:20742 次

请教下面情景的SQL语句编写方式
如题,下面这道题想了很久,弄不出来,特来请教,顺便问一下什么叫做相关子查询,我一直糊涂在这个问题上,想象不出来

先描述下这个问题吧 

已知表结构和数据如下:


我想通过oracle sql查询得到下面的结果,怎么写呢



创表脚本是:

create table test1
(id int primary key,
name varchar(20),
money int
);

insert into test1 values(1,'Tom',1000);
insert into test1 values(2,'Mary',2000);
insert into test1 values(3,'Mike',3000);
insert into test1 values(4,'Jeff',4000);


求救

------解决方案--------------------
①相关子查询指子查询中引用了外部查询的列,如本例中的 WHERE ID=T1.ID-1,T1.ID就是外部查询的列
②非相关子查询指子查询可以独立的执行,与外部查询的列无关,
如:SELECT ID,NAME,MONEY,(SELECT MONEY FROM TEST1  WHERE ID IN('1','2','3','4'))MONEY1  FROM TEST1 T1;
这里的子查询SELECT MONEY FROM TEST1  WHERE ID IN('1','2','3','4')可以独立执行与外部查询无关。